美文网首页
HTTP协议(一)

HTTP协议(一)

作者: 童一一 | 来源:发表于2020-09-28 19:29 被阅读0次

    说明一点,以下内容整理图解HTTP这本书做的总结

    整体介绍分为四个部分
    第一部分 概括性的介绍HTTP协议
    第二部分 详细介绍HTTP报文格式
    第三部分 HTTP协议的扩展,不足及HTTPS
    第四部分 概括性的介绍了HTTP的追加功能协议和WEB的攻击技术
    这四个部分分批讲解,下面先说一下第一部分

    第一部分 概括性的介绍HTTP协议

    一.分层管理
    HTTP位于应用层,与HTTP相关的协议有负责传输的IP协议;确保可靠性的TCP;负责域名解析的DNS服务;关系如下图:


    image.png

    二.HTTP基础
    1》持久连接
    HTTP 协议的初始版本中,每进行一次 HTTP 通信就要断开一次 TCP 连接。以当年的通信情况来说,因为都是些容量很小的文本传输,所以即使这样也没有多大问题。可随着 HTTP 的普及,文档中包含大量图片的情况多了起来。
    比如,使用浏览器浏览一个包含多张图片的 HTML 页面时,在发送请求访问 HTML 页面资源的同时,也会请求该 HTML 页面里包含的其他资源。因此,每次的请求都会造成无谓的 TCP 连接建立和断开,增加通信量的开销。
    为解决上述HTTP问题,想出了持久连接。持久连接的特点是,只要任意一端没有明确提出断开连接,则保持 TCP 连接状态。


    image.png
    优点:持久连接的好处在于减少了 TCP 连接的重复建立和断开所造成的额外开销,减轻了服务器端的负载。另外,减少开销的那部分时间,使HTTP 请求和响应能够更早地结束,这样 W eb 页面的显示速度也就相应提高了。

    2》管线化
    持久连接使得多数请求以管线化(pipelining)方式发送成为可能。从前发送请求后需等待并收到响应,才能发送下一个请求。管线化技术出现后,不用等待响应亦可直接发送下一个请求。这样就能够做到同时并行发送多个请求,而不需要一个接一个地等待响应了。


    image.png

    3》使用cookie的状态管理
    1. HTTP 是无状态协议,它不对之前发生过的请求和响应的状态进行管理。也就是说,无法根据之前的状态进行本次的请求处理。
    假设要求登录认证的 W eb 页面本身无法进行状态的管理(不记录已登录的状态),那么每次跳转新页面不是要再次登录,就是要在每次请求报文中附加参数来管理登录状态。
    不可否认,无状态协议当然也有它的优点。减少服务器的 CPU 及内存资源的消耗,从另一侧面来说,也正是因为 HTTP 协议本身是非常简单的,所以才会被应用在各种场景里。但是为了解决类似的矛盾问题,引入了cookie技术。
    2.Cookie 技术通过在请求和响应报文中写入 Cookie 信息来控制客户端的状态。
    Cookie 会根据从服务器端发送的响应报文内的一个叫做 Set-Cookie 的首部字段信息,通知客户端保存 Cookie。当下次客户端再往该服务器发送请求时,客户端会自动在请求报文中加入 Cookie 值后发送出去。
    服务器端发现客户端发送过来的 Cookie 后,会去检查究竟是从哪一个客户端发来的连接请求,然后对比服务器上的记录,最后得到之前的状态信息

    image.png
    image.png

    相关文章

      网友评论

          本文标题:HTTP协议(一)

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