HTTP实用指南|青训营笔记

64 阅读2分钟

这是我参与⌈第四届青训营⌋笔记创作活动的第8天。HTTP【Hyper Text Transfer Protocol(超文本传输协议)】是应用层协议,基于TCP协议,简单可扩展,无状态。用户在浏览器的地址栏中输入字符串,browser进程处理输入信息,浏览器内核向服务器发起请求并读取服务器响应,然后渲染页面。

协议基础

  • 发展历程 image.png

  • 结构与单位分析(报文)

    起始行:请求和响应的不同 、HTTP headers、empty line、body

    Method取值:

        Head: 和get类似,返回的响应中没有具体的内容,用于获取报头
        POST: 向服务器提交数据而发送的请求 
        GET: 向服务器获取资源,比如常见的查询请求 
        PUT:一般是用于更新请求,比如更新个人信息、商品信息全量更新 
        PATCH:PUT 方法的补充,更新指定资源的部分数据 
        DELETE:用于删除指定的资源 
        OPTIONS: 获取服务器支持的HTTP请求方法,服务器性能、跨域检查等 
        CONNECT: 方法的作用就是把服务器作为跳板,让服务器代替用户去访问其它网页,之后把数据原原本本返回给用户,网页开发基本不用这个方法,如果是http代理就会使用这个,让服务器代理用户去访问其他网页, 类似中介 
        TRACE:回显服务器收到的请求,主要用于测试或诊断  
    

    状态码

    image.png

    常见:

    image.png

    RESTful API:一种API设计风格,REST【Representational State Transfer】

      每一个URL代表一种资源;
      客户端和服务器之间传递这种资源的某种表现层
      客户端通过HTTP method对服务器端资源进行操作,实现“表现层状态转化”。
    

    常用请求头:Accept、Content-Type...常用响应头:Content-Type、Last-Modified、Expires...

       具体场景分析:
          - 缓存
              - 强缓存:Expires,时间戳;Cache-Control,可缓存性、到期、重新验证*重新加载
              - 协商缓存:Etag/If-None-MatchLast-Modified/If-Modified-Since
          
    

    image.png

    cookie:Set-Cookie-response

  • 发展

    HTTP/2比上一版本传输更快、更稳定、更简单。HTTP/2连接都是永久的,而且仅需要每个来源一个连接。流控制:阻止发送方向接收方发送大量数据的机制。

      帧(frame):通信的最小单位,每个帧都包含帧头,至少也会标识出当前帧所属的数据流
      消息:与逻辑请求或响应消息对应的完整的一系列帧
      数据流:已建立的连接内的双向字节流,可以承载一条或多条消息
    

    HTTPS【Hypertext Transfer Protocol Secure】:经过TSL/SSL加密

    image.png