计算机网络: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缓存=代理服务器



相关推荐
捂月几秒前
Spring Boot 深度解析:快速构建高效、现代化的 Web 应用程序
前端·spring boot·后端
瓜牛_gn26 分钟前
依赖注入注解
java·后端·spring
C++忠实粉丝38 分钟前
计算机网络socket编程(4)_TCP socket API 详解
网络·数据结构·c++·网络协议·tcp/ip·计算机网络·算法
Estar.Lee43 分钟前
时间操作[取当前北京时间]免费API接口教程
android·网络·后端·网络协议·tcp/ip
喜欢猪猪1 小时前
Django:从入门到精通
后端·python·django
一个小坑货1 小时前
Cargo Rust 的包管理器
开发语言·后端·rust
bluebonnet271 小时前
【Rust练习】22.HashMap
开发语言·后端·rust
uhakadotcom1 小时前
如何实现一个基于CLI终端的AI 聊天机器人?
后端
Iced_Sheep2 小时前
干掉 if else 之策略模式
后端·设计模式
XINGTECODE2 小时前
海盗王集成网关和商城服务端功能golang版
开发语言·后端·golang