美文网首页《图解HTTP》
《图解HTTP》之简单的HTTP协议

《图解HTTP》之简单的HTTP协议

作者: 笙绳省盛 | 来源:发表于2018-12-19 09:45 被阅读120次

1.HTTP协议规定,肯定是先从客户端开始建立通信的,服务器端在没有接收到请求之前不会发送响应。
请求报文例子:


屏幕快照 2018-12-13 下午3.47.35.png

GET表示请求访问服务器的类型,称为方法。随后的字符串/index.htm指明了请求访问的资源对象,也叫请求URI。最后的HTTP/1.1,即HTTP的版本号,用来提示客户端使用的HTTP协议功能。

请求报文是由请求方法、请求URI、协议版本、可选的请求首部字段和内容实体构成的。 屏幕快照 2018-12-13 下午3.58.39.png

响应报文例子:


屏幕快照 2018-12-13 下午4.01.34.png

HTTP/1.1,即HTTP的版本,200表示请求的处理结果的状态码,OK是原因短语。显示了创建响应的日期时间,是首部字段内的一个属性。之后的内容称为资源实体的主体。

响应报文基本上由协议版本、状态码、用以解释状态码的原因短语、可选的响应首部字段以及实体主体构成。 屏幕快照 2018-12-13 下午4.11.30.png

2.HTTP是一种不保存状态,即无状态协议。自身不对请求和响应之间的通信状态进行保存。
为了实现期望的保持状态功能,于是引入了Cookie技术。

3.HTTP方法

  • GET:获取资源
    GET方法用来请求访问已被URI识别的资源。指定的资源经服务器端解析后返回响应内容。

  • POST:传输实体主体
    POST方法用来传输实体的主体。

  • PUT:传输文件
    PUT方法用来传输文件。就像FTP协议的文件上传一样,要求在请求报文的主体中包含文件内容,然后保存到请求URI指定的位置。

  • HEAD:获取报文首部
    HEAD方法和GET方法一样,只是不返回报文主体部分。用于确认URI的有效性及资源更新的日期时间等。

  • DELETE:删除文件
    DELETE方法用来删除文件,是与PUT相反的方法。DELETE方法按请求URI删除指定的资源。

  • OPTIONS:询问支持的方法
    OPTIONS方法用来查询针对请求URI指定的资源支持的方法。

  • TRACE:追踪路径
    TRACE方法是让Web服务器端将之前的请求通信环回给客户端的方法。

  • CONNECT:要求用隧道协议连接代理
    CONNECT方法要求在与代理服务器通信时建立隧道,实现用隧道协议进行TCP通信。主要使用SSL(Secure Sockets Layer,安全套接层)和TLS(Transport Layer Security,传输层安全)协议把通信内容加密后经网络隧道传输。

4.持久连接和管线化

  • 持久连接:只要任意一端没有明确提出断开连接,则保持TCP连接状态。好处在于减少了TCP连接的重复建立和断开所造成的额外开销,减轻了服务器端的负载。另外,减少开销的那部分时间,使HTTP请求和响应能够更早结束,提高web页面显示速度。
  • 管线化:管线化可以不用等待响应亦可直接发送下一个请求。

5.使用Cookie的状态管理
Cookie会根据从服务器端发送的响应报文内的一个叫做Set-Cookie的首部字段信息,通知客户端保存Cookie。当下次客户端再往服务器发送请求时,客户端会自动在请求报文中加入Cookie值后发送出去。
服务器端发现客户端发送过来的Cookie后,会去检查究竟是从一个客户端发来的连接请求,然后比对服务器上的记录,最后得到之前的状态信息。

相关文章

网友评论

    本文标题:《图解HTTP》之简单的HTTP协议

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