目录

HTTP

目录

Http

  • http 概念:hyper text transfer protocol 超文本传输协议

    • 传输协议:定义了客户端和服务器端通信时发送数据的格式

    • 特点:

      • 基于 tcp/ip 的高级协议
      • 默认端口号:80 例如 https:域名:80(默认不写)
      • 基于 request/response 的模型:一次请求对应一次响应
      • 无状态的:每次请求之间相互独立,不能交互数据
    • 历史版本

      0.9

      0.9 协议是适用于各种数据信息的简洁快速协议,但是远不能满足日益发展的各种应用的需要。0.9 协议就是一个交换信息的无序协议,仅仅限于文字。由于无法进行内容的协商,在双发的握手和协议中,并有规定双发的内容是什么,也就是图片是无法显示和处理的。

      1.0

      到了 1.0 协议阶段,也就是在 1982 年,TimBerners-Lee 提出了 HTTP/1.0。在此后的不断丰富和发展中,HTTP/1.0 成为最重要的面向事务的应用层协议。该协议对每一次请求/响应建立并拆除一次连接。其特点是简单、易于管理,所以它符合了大家的需要,得到了广泛的应用。

      1.1

      在 1.0 协议中,双方规定了连接方式和连接类型,这已经极大扩展了 HTTP 的领域,但对于互联网最重要的速度和效率,并没有太多的考虑。毕竟,作为协议的制定者,当时也没有想到 HTTP 协议会有那么快的普及速度。

      2.0

      HTTP2.0 的前世是 HTTP1.0 和 HTTP1.1。虽然之前仅仅只有两个版本,但这两个版本所包含的协议规范之庞大,足以让任何一个有经验的工程师为之头疼。网络协议新版本并不会马上取代旧版本。实际上,1.0 和 1.1 在之后很长的一段时间内一直并存,这是由于网络基础设施更新缓慢所决定的。

  • 请求消息的格式

    1. 请求行

      • 请求行的格式:(http 有 7 种请求方式,常用 get 和 post 请求方式)

        请求方式 请求 url 请求协议/版本

        例如:GET /login.html HTTP/1.0

      • 请求方式的区别

        • http 协议中的的 GET 和 POST:参数位置不同
          • GET:
            • 请求参数在请求行中,在 url 后面,无请求体
            • 请求的 url 长度有限制
            • 安全性低
          • POST:
            • 请求参数在请求体中
            • 请求的 url 长度没有限制
            • 安全性高
    2. 请求头:客户端浏览器告诉服务器一些信息

      常见

      • User-Agent:浏览器告诉服务器,访问你使用的浏览器版本信息
        • 可以在服务器端获取该头的信息,解决浏览器的兼容性的问题
      • Referer:告诉服务器,我从哪里来
        • 作用
          1. 防盗链
          2. 统计工作
    3. 请求空行

      • 空行
    4. 请求体(正文)

      • 封装 POST 请求消息的请求参数的