计算机网络:6应用层

概述

客户/服务器方式和对等方式

客户/服务器(Client/Server,C/S)方式

客户和服务器是指通信中所涉及的两个应用进程。

客户/服务器方式所描述的是进程之间服务和被服务的关系。

服务器总是处于运行状态,并等待客户的服务请求。

C/S方式是因特网上传统的、同时也是最成熟的方式,很多我们熟悉的网络应用采用的都是C/S方式。包括万维网WWW、电子邮件、文件传输FTP等。

基于C/S方式的应用服务通常是服务集中型的,即应用服务集中在网络中比客户计算机少得多的服务器计算机上。

对等(Peer-to-Peer,P2P)方式

动态主机配置协议DHCP

动态主机配置协议DHCP可为计算机自动配置网络参数,使得计算机"即插即联网"(Plug-and-Play Networking)。DHCP目前是因特网草案标准[RFC 2131,RFC 2132]。

中继代理

域名

早在1983年,因特网就开始采用层次结构的命名树作为主机的名字(即域名),并使用分布式的域名系统DNS。

DNS使大多数域名都在本地解析,仅少量解析需要在因特网上通信,因此系统效率很高。






解析:递归查询,迭代查询


为了提高DNS的查询效率,并减轻根域名服务器的负荷和减少因特网上的DNS查询报文数量,在域名服务器中广泛地使用了高速缓存。高速缓存用来存放最近查询过的域名以及从何处获得域名映射信息的记录。

由于域名到IP地址的映射关系并不是永久不变,为保持高速缓存中的内容正确,域名服务器应为每项内容设置计时器并删除超过合理时间的项(例如,每个项目只存放两天)。

文件传送协议FTP

文件传送协议(File Transfer Protocol,FTP)是因特网上使用得最广泛的文件传送协议。

FTP提供交互式的访问,允许客户指明文件的类型与格式(如指明是否使用ASCII码),并允许文件具有存取权限(如访问文件的用户必须经过授权,并输入有效的口令)。

主动模式:

被动模式:


电子邮件



简单邮件传送协议SMTP,多用途因特网邮件扩展 MIME


SMTP协议只能传送ASCII码文本数据,不能传送可执行文件或其他的二进制对象。

为解决SMTP传送非ASCII码文本的问题,提出了多用途因特网邮件扩展 (Multipurpose Internet Mail Extensions,MIME)。

邮局协议(Post Office Protocol,POP),因特网邮件访问协议(Internet Message Access Protocol,IMAP)





万维网

万维网(World Wide Web,WWW)并非某种特殊的计算机网络。它是一个大规模的、联机式的信息储藏所,是运行在因特网上的一个分布式应用。

为了方便地访问在世界范围的文档,万维网使用统一资源定位符URL来指明因特网上任何种类"资源"的位置。

HTTP 超文本传输协议

HTTP/1.0采用非持续连接方式。在该方式下,每次浏览器要请求一个文件都要与服务器建立TCP连接,当收到响应后就立即关闭连接。




早期的万维网应用非常简单,仅仅是用户查看存放在不同服务器上的各种静态的文档。因此HTTP被设计为一种无状态的协议。这样可以简化服务器的设计。

现在,用户可以通过万维网进行各种复杂的应用,如网上购物、电子商务等。这些应用往往需要万维网服务器能够识别用户。

Cookie提供了一种机制使得万维网服务器能够"记住"用户,而无需用户主动提供用户标识信息。也就是说,Cookie是一种对无状态的HTTP进行状态化的技术。

web缓存=代理服务器



相关推荐
随心Coding31 分钟前
【零基础入门Go语言】错误处理:如何更优雅地处理程序异常和错误
开发语言·后端·golang
m0_7482345232 分钟前
【Spring Boot】Spring AOP动态代理,以及静态代理
spring boot·后端·spring
咸甜适中2 小时前
go语言gui窗口应用之fyne框架-动态添加、删除一行控件(逐行注释)
开发语言·后端·golang
梁雨珈2 小时前
Groovy语言的安全开发
开发语言·后端·golang
十二同学啊2 小时前
Spring Boot 中的 InitializingBean:Bean 初始化背后的故事
java·spring boot·后端
酱学编程3 小时前
【计算机网络】NAT应用
网络·计算机网络·智能路由器
沈霁晨3 小时前
Perl语言的语法糖
开发语言·后端·golang
DevOpsDojo3 小时前
HTML语言的数据结构
开发语言·后端·golang
谦行3 小时前
前端视角 Java Web 入门手册 1.3:Java 世界的规则
java·后端
时韵瑶4 小时前
Scala语言的云计算
开发语言·后端·golang