HTTP | 青训营笔记

21 阅读3分钟

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

主要内容

  • HTTP 协议简介与发展历程 HTTP/0.9(单行协议) :请求GET/mypage.html、响应只有HTML文档,HTTP/1.0(构建可扩展性):增加了Header、有了状态码、支持多种文档类型等......,HTTP/1.1(标准化协议):增加了链接复用、缓存以及内容协商等......,HTTP/2(更优异的表现):增加了二进制协议、压缩Header、服务器推送等......,HTTP/3(草案)

  • HTTP 协议的基本结构状态码

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

常用请求头

请求头表示意思
Accept接收类型,表示浏览器支持的MIME类型
Content-Type客户端发送出去的实体类内容
Cache-Control指定请求和响应遵循的缓存机制,如no-cache
if-Modified-Since对应服务端的Last-Modified,用来匹配看文件是否变动,精确到1s内
Expries缓存控制,在这个时间内不会请求,直接使用缓存
Max-age代表资源在本地缓存多少秒,有效时间内不会请求,使用缓存
if-None-Match对应服务端的ETag,用来匹配文件内容是否改变
Cookie有cookie并且同于访问时自动带上
Referer该页面的来源URL
Origin最初的请求是从哪里发起的
User-Agent用户客户端的一些必要信息

常用响应头

响应头表示意思
Content-Type服务器返回的实体内容的类型
Cache-Control指定请求和响应遵循的缓存机制,如no-cache
Lat-Modified请求资源最后修改时间
Expries应该在什么时候认为文档已经过期,从此不再缓存它
Max-age客户端的本地资源应该缓存多少秒,开启Cache-Control
ETag资源的特定版本的标识符,Etags类似于指纹
Set-Cookie设置和页面关联的cookie
Server服务器的一些相关信息
Aceess-Control-Allow-Origin服务器端允许的请求Origin头部

客户端: 主动发起网络请求的一端

服务器: 被动接收网络请求的一端

  • 常见场景中的 HTTP 协议应用

使用 curl 工具发送 HTTP 请求并查看响应

使用 Node.js 实现一个简单的 HTTP 服务器

使用浏览器调试工具分析网站的 HTTP 请求和响应

在不同的环境中发起 HTTP 请求

  • 知识扩展,了解更多网络通信协议

http2其特点是更快、更稳定、更简单。

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