这是我参与「第四届青训营 」笔记创作活动的第7天
一、重点内容
认识HTTP协议和报文。
二、详细知识点
初识HTTP
HTTP全称是Hyper Text Transfer Protocol,也就是超文本传输协议。从字面意思来看超文本传输协议=超文本+传输+协议,今天就简单介绍一下协议。
协议分析
- HTTP/0.9单行协议
- 组成简单
- 请求GET/mypage.html
- 只支持纯文本
- HTTP/1.0构建可扩展性
- 第一个广泛应用的HTTP版本
- 增加了Header
- 有了状态码
- 支持多种文档类型
- 支持缓存功能
- ......
- HTTP/1.1标准化协议
- 修复HTTP设计的缺陷
- 支持持久连接,减少了关闭连接的消耗和时间延迟
- 链接复用
- 缓存
- 内容协商
- ......
- HTTP/2更优异的表现
- 连接共享
- 二进制协议
- 压缩header
- 服务器推送
- 请求优先级
- ......
- HTTP/3草案
报文
报文概念
报文(message)是网络中交换与传输的数据单元,即站点一次性要发送的数据块报文包含了将要发送的完整的数据信息,其长短不一致,长度不限且可变。
报文的主要作用是:承担装载数据,运输数据。
请求方式
- GET:请求一个指定资源的表示形式,使用GET的请求应该只被用于获取数据
- POST:用于将实体提交到指定的资源,通常导致在服务器上的状态变化或是副作用
- PUT:用请求有效载荷替换目标资源的所有当前表示
- DELETE:删除指定的资源
- HEAD:请求一个与GET请求的响应相同的响应,但没有响应体
- CONNECT:建立一个到由目标资源标识的服务器的隧道
- OPTIONS:用于描述目标资源的通信选项
- TRACE:沿着到目标资源的路径执行一个消息环回测试
- PATCH:用于对资源应用部分修改
报文的语法
所有的HTTP报文都可以分为两类,请求报文和响应报文。请求和响应报文的基本报文结构大致是相同的,只有起始行的语法有所不同。
请求报文:会向Web服务器请求一个动作
请求报文的格式:
起始行: <method> <request-URL> <version>
头部: <headers>
主体: <entity-body>
响应报文:会将请求的结果返回给客户端。
响应报文的格式:
起始行: <version> <status> <reason-phrase>
头部: <headers>
主体: <entity-body>
三、应用参考
报文(网络中交换与传输的数据单元)_百度百科 (baidu.com)