HTTP实用指南 | 青训营笔记

52 阅读2分钟

这是我参与「第四届青训营 」笔记创作活动的的第5天

01.初识HTTP

什么是HTTP

  • Hyper Text Transfer Protocol超文本传输协议
  • 应用层协议,基于TCP协议
  • 请求响应
  • 简单可扩展
  • 无状态

02.协议分析

HTTP、0.9单行协议:

  • 请求GET/mypage.html
  • 响应只有HTML文档

HTTP/1.0构建可扩展性:

  • 增加了Header
  • 有了状态码
  • 支持多种文档类型

HTTP/1.1标准化协议:

  • 链接复用
  • 缓存
  • 内容协商

HTTP/2更优异的表现:

  • 二进制协议
  • 压缩header
  • 服务器推送

HTTP/3草案

Method Safe(安全的);不会修改服务器的数据的方法

          GET HEAD OPTIONS

idempotent(幂等):同样的请求被执行一次与连续执行多次的效果是一样的。服务器的状态也是一样的,所有safe的方法都是idempotent的

状态码

200OK-客户端请求成功

301-资源(网页等)被永久转移到其他URL

302-临时跳转

401Unauthorized-请求未经授权

404-请求资源不存在,可能是输入了错误的URL

500-服务器内部发生了不可预期的错误

504 Gateway Timeout-网关或者代理的服务器无法在规定的时间内获得想要的响应。

RESTful API:一种API设计风格

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

常用请求头

Accept 接收类型,表示浏览器支持的MIME类型

Cookie 有cookie并且同域访问时会自动带上

User-Agent 用户客户端的一些必要信息,如UA头部等

缓存

强缓存

  • Expires
  • Cache-Control
  • 可缓存性:no-cache/no-store
  • 到期:max-age
  • 重新验证、重新加载:must-revalidate

协商缓存

Set-Cookie-response

secure 仅在HTTPS安全连接时,才可以发送Cookie

HttpOnly JavaScript脚本无法获得Cookie