美文网首页
图解HTTP读书笔记

图解HTTP读书笔记

作者: 云师兄 | 来源:发表于2018-12-08 14:02 被阅读7次

    第一章 网络基础

    通常使用的网络是在TCP/IP协议族基础上运作的,而HTTP属于它内部的一个子集。

    TCP/IP

    TCP/IP协议族分为:应用层,传输层,网络层和数据链路层。

    • 应用层:HTTP协议,FTP协议,DNS协议都是属于应用层。
    • 传输层:提供处于网络连接中的两台机器之间的数据传输,分为TCP和UDP协议;
    • 网络层:用来处理在网络上流动的数据包和传输路线,IP网际协议通过IP地址和MAC地址来进行判断传输路线;
    • 链路层:用来处理连接网络的硬件部分。

    TCP协议

    • TCP协议采用三次握手确保通信可靠。
    • TCP协议提供可靠的字节流服务,将大块数据分割为以报文段为单位的数据包处理。
    • 发送一个HTTP请求后,通过TCP将HTTP请求分割为多个报文段后再依次传输。

    DNS服务

    DNS提供域名到IP地址之间的解析服务。

    第二章 HTTP协议

    HTTP协议用于客户端和服务器之间的通信。

    请求和相应

    • 请求报文是由请求方法,请求URI,协议版本,可选的请求首部字段和内容实体构成。
    • 响应报文是由协议版本,状态码,用以解释状态码的原因,可选的响应首部字段以及内容实体构成。

    HTTP是不保存状态的协议

    HTTP是一种不保存状态,即无状态协议,协议对发送过的请求和响应都不做持久化处理。HTTP1.1虽然也无状态,但是提供了Cookie技术进行状态管理。

    HTTP方法

    • GET:获取资源
    • POST: 传输实体主体
    • PUT:传输文件
    • HEAD:获得报文首部,不返回报文主体内容。
    • DELETE:删除文件,与PUT相反。
      ...

    HTTP持久连接

    HTTP初始版本下,进行一个HTTP通信,前后就包装一次建立TCP连接后取消连接的过程。由于三次握手非常麻烦,所以开销较大;为此,HTTP后来的版本提供了持久连接,建立一次TCP连接后,可以一直多次进行HTTP通信,直到最后断开TCP连接。

    HTTP管线(pipeline)连接

    HTTP持久连接的基础上,多个HTTP通信要求发送请求后需收到响应才能发送下一个请求。管线化后,可以并行多个HTTP同时通信,不用排队等待。

    使用Cookie的状态管理

    第一次客户端请求并且服务的响应后,服务端发送响应报文中有一个SetCookie首部字段信息,通知客户端保存Cookie,下次再发送请求时,自动在报文中加入Cookie后发送,服务端再通过已有的记录,得到之前的状态信息。

    第三章 HTTP报文中的HTTP信息

    HTTP报文大致分为报文首部和报文主体两块。两者由空行来划分。

    编码提升传输速率

    • 服务端将响应报文中的内容实体进行压缩编码后返回给客户端,客户端负责解码。
    • 传输大容量数据时,通过将数据分割为多块进行传输称为分块传输编码。

    发送多种数据的多部分对象集合

    HTTP协议中,客户端发送的请求报文主体中可以包含多类型实体,如图片和文件进行上传。多部分对象集合包含的对象有:multipart/form-data,multipart/byteranges。在报文中使用多部分对象集合时,需要在首部字段里加上content-type。

    第四章 返回结果的HTTP状态码

    相关文章

      网友评论

          本文标题:图解HTTP读书笔记

          本文链接:https://www.haomeiwen.com/subject/mgcqhqtx.html