web建立最初,是基于三个规范的,即标准通用标记语言HTML,超文本传输协议HTTP和文档位置定位符URL,这篇主要讲HTTP相关。
TCP/IP协议族
了解HTTP首先要了解一下TCP/IP协议,协议就是字面意思,TCP/IP协议是对网络传输过程中需要用到的东西确定的规范。
HTTP是TCP/IP协议的子集。对于TCP/IP族到底指什么,没有一个确定的答案,流传比较多的有三个说法:
- TCP/IP协议为网络通信中所有过程的统称
- TCP/IP协议为网络通信中用到的协议
- TCP/IP协议值IP通信中用到的协议
网络传输的分层机制
网络传输分为应用层(用户使用时应用的协议,例如DNS/HTTP),传输层(确定报文传输方式,例如TCP/UDP),TCP通过三次握手和目标网络建立通信链接,网络层(确定传输过程中最小单位的包的传输地址,例如IP),链路层(一切的硬件设施)。从发起到接收,发起的时候,每经过一层,都会添加当前层响应的信息,接收的时候,发起的时候添加的信息,会一层层的拿掉。分层的好处是,当发生修改的时候,只要专注当前层就可以了,不会对别的层产生影响。前端关注比较多的是应用层,也就是HTTP协议这一部分。
HTTP请求
发起HTTP请求时,传输的东西又叫请求报文,请求由两部分组成:报文首部和报文主体,报文首部又分为两部分,请求行/响应行和首部字段,首部字段有四个类型:请求首部,响应首部,通用首部,实体首部。通常说的实体,就是报文主体,里面存放的是请求或者响应的内容。
传输优化
报文传输过程中对实体的有两种优化方式,一是压缩,二是分割。
压缩:gzip, compress(Unix),+(zlib), idetify
分割:把报文分割成小块
报文主体和实体主体
实体是作为请求或响应的有效负责荷数据(补充项)被传输,起内容由实体首部和实体主体组成。 HTTP报文的主体用于传输请求或响应的实体主体,在不进行传输压缩的时候,报文主体等于实体主体,压缩之后就不等于了。