这是我参与「第五届青训营 」伴学笔记创作活动的第 5 天
重点内容:
- 初始HTTP
- 协议分析
详细知识点:
一、初始HTTP
TCP协议特点:
- 面向连接:建立连接和关闭连接的方式
- 点对点(一对一)
- 可靠交付:错误确认和重传
- 面向字节流,仅仅把上层协议传递过来的数据当成字节传输
HTTP协议:Hyper Text Transfer Protocol 超文本传输协议
- 应用层协议,基于TCP协议
- 请求 响应
- 简单可扩展
- 无状态:没有记忆能力,每个请求之间孤立
二、协议分析 - 报文
请求格式:由请求行、请求头部、空行和请求数据四个部分组成
[Verb] [URL] [HTTP Version]
[Request Header]
[Request Body]
响应格式:由状态行、消息报头、空行和响应正文组成
[HTTP Version] [Response Code]
[Response Header]
[Response Body]
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
- 每一个URI代表一种资源
- 客户端和服务器之间,传递这种资源的某种表现层
- 客户端通过HTTP method,对服务器资源进行操作,实现“表现层状态转化”
常用请求头:
常用响应头:
缓存:
保存资源副本并在下次请求时直接使用该副本
cookie:
服务器发送到用户浏览器并保存在本地的一小块数据
HTTP/2:更快,更稳定,更简单
帧(frame):HTTP/2通信的最小单位,每个帧都包含帧头,至少会表示出当前帧所属的数据流 消息:与逻辑请求或响应消息对应的完整的一系列帧 数据流:已建立的连接内的双向字节流,可以承载一条或多条消息 · HTTP/2连接都是永久的,而且仅需要每个来源一个连接 · 流控制:阻止发送方向接收方发送大量数据的机制