基本网络服务: TELNET E-mail FTP BBS Usenet
三种应用程序体系结构:
- c/s (custom and server)
- p2p
- c/s p2p mixed
c/s模式
服务器的特点:
- 总是保持打开状态
- 为多个客户端提供请求服务
- 永久固定的ip地址
- 可扩展为服务器群
客户端:
- 间歇打开或者关闭
- 向服务器发送请求
- ip地址一般是动态的
- 客户端间不直接通信
为什么采用c/s模式
保证信息资源的合法性和安全性 保证数据的完整性和一致性
P2P模式(可扩展度高,难以管理)
- 无打开的服务器,又或者说人人都是服务器
- 任意的对等客户端可以直接通信
- 间歇性的连接 ip地址不固定
P2P与C/S的区别与联系
有别于传统的互联网资源共享模式(C/S),P2P网络淡化了服务提供者和服务使用者的界限,P2P进一步扩大了网络资源共享的范围和深度,提供了资源的利用率,使信息共享达到了最大化。
P2P和C/S混合模式
如napster 即时通讯软件等
传输层协议的选择
根据需求选择tcp或者udp
TCP
- 可靠的面向连接服务
- 字节流传服务
- 全双工服务(同时进行信号的双向传输)
UDP
- 无连接、不可靠的传输
- 不提供拥塞控制服务
- 不提供最小延时保证
几个概念
超文本标记语言html
统一资源定位符url
超文本传输协议http
url地址组成
url是网络中资源具有的唯一标识符(绝对路径)
ip是网络中主机地址的标识符,但不唯一,也叫域名地址
nslookup ip与域名解析
冒号左边表示访问的方式
http默认端口是80 如 http://www.baidu.com:80 www.baidu.com 是一样的 冒号后面的80可以省略。
web系统C/S模式
- 客户机:用户点击链接时 ,浏览器向服务器发出该页所含对象的“http请求报文”
- 服务器:接受请求,向客户端发送包含请求对象的“http响应报文”
- 客户机:浏览器将页面进行解析后展示给用户
http的工作机制
底层传输协议是tcp
- 工作过程:创建tcp连接->交换报文->关闭tcp连接
- 建立tcp连接,客户端和服务器交换http请求和响应报文。
- tcp提供可靠服务,保证客户端和服务器交换的请求和响应报文能正确送达
- web服务器向客户端发送应答报文时,不保存浏览器的任何请求信息,面对重复的访问,服务器也不会拒绝(无状态协议)
无状态协议指对处理的事务没有记忆,缺少状态意味着如果后续需要前面的信息,则必须进行重传,这样可能导致每次连接传送的数据量增大。如果服务器不需要先前的信息时,应答速度较快
举例:客户获得一张网页之后关闭浏览器,然后再一次启动浏览器,再登陆该网站,但是服务器并不知道客户关闭了一次浏览器
http协议的两种状态
非持续http连接(每次请求响应都要建立一次tcp连接)
- 每个tcp连接上只传送一个web对象
- 只传送一个请求/响应对
持续http连接(发出响应后保持tcp连接,相同的客户端进程与服务器端之间的后续报文都通过这一个连接传送)
- 一个tcp连接上可以传送多个web对象
- 传送多个请求响应对
默认方式下使用持续连接
流水线(持续连接)与非流水线(非持续连接)
- 非流水线:等待响应,tcp空闲时间长
- 流水线:没收到响应,可以发送新的请求,提高效率
http请求报文格式
请求报文结构与应答报文结构对比
请求报文目的:查询某一个web页可用性,如果可用,从web服务器读取这个报文
请求有很多种方式:get,head,put,不同方式的请求内容和操作不一样
http应答报文格式
应答报文结构
- 200 ok 请求成功 对象在这个报文后面
- 301 moved permanently 请求对象已转移,新的url在响应报文的location首部行中指定
- 400 bad request 请求无法被服务器理解
- 404 not found 请求的文档没有在服务器上发现
- 505 http version not supported 服务器不支持请求报文使用的http
报文的报头结构
请求报文、应答报文的交互过程
GUI (用户图形接口)
SMTP(simple mail transfer protocol)
- 应用层协议
- 使用tcp可靠协议传输
SMTP协议的基本内容
使用的tcp来可靠传输邮件服务端口25
- 建立tcp连接
- 握手 指明收发邮件的地址
- 邮件报文的传输
- 断开tcp连接
ISP (internet service provider)
例如:腾讯,阿里,百度,谷歌等
smtp报文全部由ASCII码组成
建立连接
- 从客户端使用熟知端口号25建立与服务器的TCP连接,SMTP服务器向该客户送回应答码220,并且还为客户端提供了服务器的域名
- 客户端收到应答码后,发送HELO命令,启动客户端和服务器之间的SMTP会话。该客户端发送的HELO用来向服务器提供客户端的标识信息
- 服务器端回应应答码250,通知客户端:请求建立邮件服务会话已经实现
关闭服务
- 客户端发送“QUIT”命令
- 服务器收到命令后,回应应答码“221”,并结束会话
MIME协议的基本内容
MIME是SMTP的辅助协议,不能代替SMTP协议,SMTP只支持7位的ASCII格式,不支持语言和视频数据传输,所以需要一个辅助的报文MIME
MIME和HTTP的对比
相同点
- 都用于从一台主机向另一台主机传送文件
- MIME和SMTP都使用持续连接
不同点
- 对一些包含了非7位ASCII字符的报文或二进制数据(如图片、声音),需要按照7位ASCII码进行编码,再传送。 在接收方需要解码还原为原有报文
- HTTP对数据类型没有限制
- 对含有文本和图形 (或其他媒体类型)的文档:HTTP把每个对象封装在它各自的HTTP响应报文中发送 电子邮件则把所有报文对象放在一个报文中。
邮件服务器间的传输依然使用smtp协议
IMAP4 POP3协议(邮件读取协议)
FTP(file transfer protocol)
采用c/s的传输模式 底层是两个并行tcp协议
TFTP协议:
简化FTP版本。1981年公布TFTP协议标准
FTP、TFTP协议比较
- 对传输可靠性的要求。FTP面向连接、可靠;TFTP简洁、采用UDP。
- 协议的命令集。FTP制定发送/接收文件、列出目录与删除文件等复杂命令;TFTP协议只定义文件发送/接收基本命令。
- 数据表示方式。FTP指定数据类型,TFTP协议只允许传输ASCII码或二进制文本文件。
- 用户鉴别。FTP有登录用户鉴别功能,TFTP不提供用户鉴别功能。
FTP和HTTP的对比