HTTP协议 | 青训营笔记

110 阅读2分钟

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

HTTP协议:

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

协议分析-发展

  • HTTP/0.9单行协议:请求GTE/mypage.html,响应的只有HTML文档
  • HTTP/1.0构建可扩展性:增加了Header,有了状态码,支持多种文档……
  • HTTP/1.1标准化协议:链式复用,缓存,内容协商……
  • HTTP/2更优异的表现:二进制协议,压缩Header,服务器推送……

协议分析-报文

  • GET :请求一个指定资源的表现形式,使用GET的请求应该只被用于获取数据
  • POST:用于将实体提交到指定的资源,通常导致在服务器上的状态变化或副作用
  • PUT :用请求有效载荷替换目标资源的所有当前表示
  • DELETE:删除指定的资源
  • HEAD :请求一个与GET请求的响应相同的响应,但没有响应体
  • CONNECT :建立一个到由目标资源标识的服务器的隧道
  • OPTIONS :用于描述目标资源的通信选项
  • TRACE :沿着到目标资源的路径执行一个消息回环测试
  • PATCH:用于资源应用部分修改 分类:

Safe(安全的):
不会修改服务器的数据的方法 (GET,HEAD,OPTIONS)

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

状态码:

image.png

image.png
常见请求头:

image.png

image.png
缓存:

image.png
Coolie:

Set cookieresponse
Name=value各种cookie的名称和值
Expires=DateCookie的有效期,缺省时Cookie仅在浏览器关闭之前有效
Path = Path限制指定Cookie的发送范围的文件目录,默认为当前
Domain=domain限制cookie生效的域名,默认为创建cookie的服务域名
secure仅在HTTPS安全链接时,才可以发送Cookie
HttpOnlyjavascript脚本无法获得Cookie
SameSite=[None、Strict、Lax]None统战、跨站请求都可以发送,Strict仅在同站发送,Lax允许与顶级导航一起发送,并将与第三方网站发起的GET请求一起发送