HTTP协议| 青训营笔记

91 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第3天

HTTP协议

1初识HTTP

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

2协议分析

持续发展|报文解析

2.1持续发展

HTTP/0.9单行协议

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

HTTP/1.0构建可扩展性

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

HTTP/1.1标准化协议(使用时间最久)

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

HTTP/2更优异的表现

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

HTTP/3草案

2.2报文解析

2.2.1Method

GET

请求一个指定资源的表示形式,使用GET的请求应该只被用于获取数据.

POST

用于将实体提交到指定的资源,通常导致在服务器上的状态变化或副作用

PUT

用请求有效载荷替换目标资源的所有当前表示

DELETE

删除指定的资源

HEAD

请求一个与GET请求的响应相同的响应,但没有响应体

CONNECT

建立一个到由目标资源标识的服务器的隧道。

OPTIONS

用于描述目标资源的通信选项。

TRACE

沿着到目标资源的路径执行一个消息环回测试。

PATCH

用于对资源应用部分修改。

2.2.2

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

GET HEAD OPTIONS

ldempotent (幂等) : 同样的请求被执行一次与连续执行多次的效果是一样的,服务器的状态也是一样的

所有safe的方法都是Idempotent的

GET HEAD OPTIONS PUT DELETE

2.2.3状态码

  • 200 OK -客户端请求成功
  • 301-资源(网页等)被永久转移到其它URL
  • 302-临时跳转
  • 401 Unauthorized -请求未经授权
  • 404-请求资源不存在,可能是输入了错误的URL
  • 500-服务器内部发生了不可预期的错误
  • 504 Gateway Timeout-网关或者代理的服务器无法在规定的时间内获得想要的响应。

4开头通常是客户端错误,5开头是服务器相关错误

2.2.4 常用请求头

2.2.5缓存

强缓存

协商缓存

2.2.6 cookie

2.2.7HTTP/2概述

概述:更快、更稳定、更简单

3应用场景

4实战

WebSocket

  • 浏览器与服务器进行全是·双工通讯的网络技术
  • 典型场景:实时性要求高,例如聊天室
  • URL使用ws://或wss://等开头