《深入浅出HTTPS》读书笔记(2):HTTP
HTTP目前的版本是HTTP/1.1,定义在RFC 2616规范上。
HTTP的模型很简单,是一个B/S模型,由客户端和服务器组成,交互流程很简单。
◎一个HTTP客户端发送请求至HTTP服务器,然后等待服务器的响应。
◎一个HTTP服务器负责监听端口(默认是80),然后等待客户端的请求,处理完成后,回复给客户端。
【HTTP语义】
HTTP消息主要包括两部分,分别是HTTP语义和HTML实体。
HTTP消息由三部分组成。
◎请求行或响应行。
◎HTTP头部。
◎HTML实体,包括请求实体和响应实体。
前面两部分是HTTP的语义信息,客户端和服务器使用语义信息进行交谈,最后一部分就是HTML实体,由浏览器进行处理,对用户更有意义。
1)HTTP头部
(1)Accept-Encoding:gzip
表示浏览器支持的数据压缩算法是gzip,它等于告之服务器,是否可以使用gzip算法压缩响应后再发送。
(2)Host:www.example.com
该头部只对客户端有用,表示客户端连接互联网上的某个服务器,客户端在连接之前需要先通过DNS协议解析出www.example.com的IP地址,然后连接服务器并发送请求。
2)请求行
请求行由方法、URL、HTTP版本组成。
方法表示客户端以何种方式请求服务器上的资源,比如GET方法表示获取资源,POST方法表示更新服务器资源;URL表示互联网资源的地址;HTTP/1.1表示客户端本次请求所遵循的HTTP版本。
3)响应行
响应行由HTTP版本、状态码、信息提示符组成。
HTTP/1.1表示本次响应支持HTTP/1.1;200表示本次请求被正确处理了,如果是404表示服务器上不存在客户端需要的资源;信息提示符和状态码是一一对应的,不同的状态码有不同的描述信息。
【HTTP的特点】
1)客户端/服务器模型
HTTP是一个客户端/服务器模型,客户端和服务器通过网络交换信息。
2)HTTP是无状态的
HTTP是基于TCP的,当一个TCP连接关闭后,所有的HTTP请求/响应信息将全部消失。
在HTTP中,客户端通过Socket技术创建一个TCP/IP连接,并连接到服务器,完成信息交换后,就会关闭TCP连接。
所谓的无状态就是每次请求完成后,不会在客户端和服务器上保存任何的信息。
为了保持状态,出现了Cookie和Session技术,但是Cookie技术设计得非常不严谨,引发了很多安全问题。
3)HTTP是跨平台的
4)HTTP用途很广泛
HTTP更多的是一个数据载体,对于Web应用来说更重要的是浏览器如何处理这些数据。
不管是iOS还是Andriod应用,都需要调用基于HTTP的API接口。