图解http是一本挺好的协议入门书籍,主要讲http协议,在这里记录一下学习总结
(因为在看书的时候记得文字笔记,所以底下会有许多图片,字丑别嫌弃)
TCP/IP协议是互联网各类协议族的总称
分为应用层,传输层,网络层,链路层
http协议为其子集,是处于应用层
IP协议(网络层) Internet Protocol 网际协议
IP地址:节点分配的地址(可变换)
MAC地址:网卡所属固定地址(不可变换)(Media Access Control Address)
ARP地址解析协议:两台电脑网络通信时数据经过多台中转电脑,用ARP解析,根据IP解析出MAC地址
(这个传输中转过程称为路由选择)
(Address Resolution Protocol)
TCP协议(传输层) Transmission Control Protocol 传输控制协议
字节流服务:将大块数据分割为报文段为单位的数据包进行管理
三次握手确认传输成功:
1.先发送SYN标志的数据包给对方
2.对方发送SYN/ACK标志表示传达确认
3.再发送SYN标志表示传输结束
SYN:synchronize ACK:acknowledgement
DNS服务(应用层) Domain Name System
域名到IP地址的解析服务
计算机可以被赋予IP地址,也可以被赋予主机名和域名
URI统一资源标识符
U:uniform:规定统一格式 R:resource:可标识的任何资源 I:identifier:标识符
登录信息:指定用户名和密码
服务器地址:域名或IPv4地址
端口号:省略则为默认端口号
查询字符串:非必须
片段标识符:非必须
URL统一资源定位符
HTTP协议:超文本传输协议 HyperText Transfer Protocol
HTTP协议能明确区分客户端和服务端
请求报文的构成:请求行,请求首部字段,内容实体
响应报文的构成:状态行,响应首部字段,主体
http协议是无状态协议:对于发送过的请求或响应不做持久化(Cookie技术可以用于持久化)\
http请求方法类型:
get,post,put,head,delete,options,trace,connect
get:获取资源 post:传输实体主体 put:传输文件 head:获得报文首部 delete:删除文件 options:询问支持的方法
trace:追踪路径△ connect:用隧道协议连接代理 通常用get和post
网络隧道传输:使用SSL和TLS加密后传输
SSL:Secure Sockets Layer 安全套接层
TLS:Transport Layer Security 传输安全层
报文首部的概念:请求行/状态行 +首部字段=报文首部
报文:HTTP通信的基本单位,8位字节流组成
实体:作为请求/响应的有效载荷数据被传输,内容由实体首部和实体主体构成
通常情况下: 报文等价于实体(只是称呼不同) 如果传输过程中进行编程则产生差异
压缩传输的内容编码(类似于文件压缩的概念):
一种应用在实体内容上的编码格式,并且保持实体信息原样压缩,由客户端接收之后解码使用
常见类型:gzip,compress,deflate,identity
△分割发送的分块传输编码:把实体主体分块传输的一种编码
获取部分内容的范围请求:
可以使用首部字段Range指定获取部分资源
Range: bytes =0-3000,5000-7000
获取0-3000字节和5000-7000字节的数据
△内容协商返回最合适内容:根据首部字段返回最合适资源(中英版本,编码版本....)
状态码:告知返回的请求结果:
状态码的类别
最具代表性的14种:
最常见的就是200 OK和404 Not Found
持久连接和管线化:
旧版http协议每次http通信就断开一次连接,因而推出这两个技术(http1.1默认持久连接)
持久连接:建立一次TCP连接后,没有明确表示断开则保持TCP连接状态
管线化:建立持久连接后,不等第一个请求收到响应就发送下一个请求
Cookie技术:在请求/响应报文内写入Cookie信息
第一次响应时服务器端加入Cookie信息<set-Cookie:....>
第二次请求时,客户端就在请求报文中加入Cookie信息 Cookie:....
P.s.制定HTTP协议技术标准的文档称为RFC:request for comments 征求修正意见书
虚拟主机:实现单服务器搭建多个Web站点,对应多个域名
http访问虚拟主机由于IP地址相同,所以必须在Host首部完整指定主机名或者域名
代理服务器:客户端和服务端的"中间人"角色
每次经过代理服务器,会追加写入Via首部信息
用途:1.利用缓存技术减少网络带宽的流量 2.对于特定网站的访问控制 3.获取访问日志
分类方式:1.是否使用缓存 2.是否修改报文
透明代理:经过代理时不对报文做任何加工
缓存代理:在响应时存一份副本在代理服务器上,下次再请求相同内容时将缓存资源返回给客户端
缓存服务器:代理服务器的一种,减少源服务器的资源请求.缓存副本存在有效期.缓存还可以存在于本来浏览器中.
网关:类似于代理,可以与非HTTP服务器通信(例:数据库,信用卡结算系统联动)
本书具体没讲网关,所以我也不知道啥是网关
除了HTTP的另外应用层协议:
FTP:文件传输协议 File Transfer Protocol 一种用于文件访问的协议,最常见在企业内网服务器之间,学校内网服务器之间的协议
(FTP无法是网页形式的,所以互联网基本都用HTTP)
NNTP协议:凉了 WAIS协议:凉了 Archie协议:凉了 Gopher:凉了
___________________________分割线___________________________