HTTP协议 | 青训营笔记

74 阅读2分钟

“这是我参与「第四届青训营 」笔记创作活动的第5天 HTTP1.1 标准版本

超文本传输协议。监听端口80

发展历程

QQ图片20220801082509.png

  • 请求中最主要反应请求方式、协议版本
  • 响应中最主要反应协议版本 状态码 状态信息

QQ图片20220801082525.png

请求方法

QQ图片20220801082736.png

方法遵循准则:

  • safe安全的。不会修改服务器数据 GET HEAD OPTIONS
  • idempotent幂等。同样的请求被执行一次与连续执行多次效果一样。所有安全的方法都幂等。

状态码

QQ图片20220801083141.png

常用请求头

QQ图片20220801083628.png

  • 实体内容类型可以是form-data,或者json等
  • http无状态,可以用cookie携带状态

常用响应头

QQ图片20220801084033.png

  • access-control-allow-origin常用来解决跨域

缓存

  • 强缓存(资源本地有缓存,可以直接用)
  • 协商缓存(本地缓存在使用前先和服务器通信确认才使用) QQ图片20220801084218.png

缓存流程

304表示请求的资源未修改 QQ图片20220801084526.png

cookie

  • 键值对的形式

QQ图片20220801084605.png HTTP 2

  • 更快、更稳定、更简单
  • 通信最小单位为帧(包含帧头,所属数据流)
  • 二进制传输
  • 数据流(已建立的连接内的双向字节流,可以承载多条消息)
  • 连接复用性。连接是永久的,每个来源一个链接
  • 流控制。阻止发送方向接收方发送大量数据的机制。
  • 服务器推送(会同时把请求资源中引用到的其他资源一起发送给客户端)

HTTPS

  • 对称加密和非对称加密混合使用(TSL/SSL加密)
    • 对称加密:加密和解密使用同一个秘钥
    • 非对称加密:加密解密使用不同秘钥(公钥和私钥)
  • 监听端口443

QQ图片20220801090435.png

静态资源部署(提供加载速度)

缓存 + CDN + 文件名hash

跨域

  • 协议 域名 端口号其中之一不一样就说明发生了跨域
  • 浏览器的同源策略造成
    • 同源策略存在于浏览器与浏览器,浏览器与不同源服务器之间。服务器之间不受限制。
  • 一般使用options请求

QQ图片20220801091927.png

解决方案

  • CORS
  • jsonp
  • 代理服务器(常用)

鉴权

记录登录状态

  • 一般使用 cookie + session的方案
  • JWT(json web token)

SSO单点登录

网站跳转自动登录

新的通信方式websocket

浏览器与服务器进行全双工通讯的技术

  • 实时性要求高,比如聊天室
  • URL使用WS://或 WSS://等开头