HTTP 协议 | 青训营笔记

68 阅读3分钟

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

重点内容:

  1. 初始HTTP
  2. 协议分析

详细知识点:

一、初始HTTP

image.png

TCP协议特点:

  1. 面向连接:建立连接和关闭连接的方式
  2. 点对点(一对一)
  3. 可靠交付:错误确认和重传
  4. 面向字节流,仅仅把上层协议传递过来的数据当成字节传输

HTTP协议:Hyper Text Transfer Protocol 超文本传输协议

  1. 应用层协议,基于TCP协议
  2. 请求 响应
  3. 简单可扩展
  4. 无状态:没有记忆能力,每个请求之间孤立

二、协议分析 - 报文

7f5a156f95c67203a617a3ab249cddf.jpg

请求格式:由请求行、请求头部、空行和请求数据四个部分组成
[Verb] [URL] [HTTP Version]
[Request Header]
[Request Body]
响应格式:由状态行、消息报头、空行和响应正文组成
[HTTP Version] [Response Code]
[Response Header]
[Response Body]

image.png

Method:

GET 请求指定的页面信息,并返回实体主体。
HEAD 类似于get请求,只不过返回的响应中没有具体的内容,用于获取报头
POST 向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改。
PUT 从客户端向服务器传送的数据取代指定的文档的内容。
DELETE 请求服务器删除指定的页面。
CONNECT HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。
OPTIONS 允许客户端查看服务器的性能。
TRACE 回显服务器收到的请求,主要用于测试或诊断。
Safe(安全的):不会修改服务器数据的方法:GET HEAD OPTIONS
Idempotent(幂等):同样的请求被执行一次与执行多次的效果是一样的,服务器的状态也是一样的。所有的safe的方法都是Idempotent的:GET HEAD OPTIONS PUT DELETE

状态码:由三位数字组成

1xx:指示信息--表示请求已接收,继续处理
2xx:成功--表示请求已被成功接收、理解、接受
3xx:重定向--要完成请求必须进行更进一步的操作
4xx:客户端错误--请求有语法错误或请求无法实现
5xx:服务器端错误--服务器未能实现合法的请况

RESTful API:Representational State Transfer

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

常用请求头:

image.png

常用响应头:

image.png

缓存:

保存资源副本并在下次请求时直接使用该副本

image.png

cookie:

服务器发送到用户浏览器并保存在本地的一小块数据

image.png

HTTP/2:更快,更稳定,更简单

帧(frame):HTTP/2通信的最小单位,每个帧都包含帧头,至少会表示出当前帧所属的数据流 消息:与逻辑请求或响应消息对应的完整的一系列帧 数据流:已建立的连接内的双向字节流,可以承载一条或多条消息 · HTTP/2连接都是永久的,而且仅需要每个来源一个连接 · 流控制:阻止发送方向接收方发送大量数据的机制

参考

HTTP | MDN