这是我参与「第四届青训营 」笔记创作活动的第5天
HTTP实用指南
初识HTTP
HTTP 是一种 超文本传输协议(Hypertext Transfer Protocol)
超文本
早期,我们电脑中保存的信息通常以文本即简单字符的形式存在,文本是一种能够被计算机解析的有意义的二进制数据包。随着互联网的发展,两台电脑之间能够进行数据传输,两台电脑之间不仅仅能够传输文本,音频、视频等都能够被传输,文本的语义被扩大了,这种扩大后的文本就被成为超文本(Hypertext)
传输
由传输载体(例如同轴电缆,电话线,光缆)负责把二进制数据包由计算机终端传输到另一个终端的过程称为传输(transfer)。
协议
网络协议是计算机网络中进行数据交换而建立的规则、标准或约定的集合。
HTTP 是一个在计算机世界里专门在两点之间传输文字、图片、音频、视频等超文本数据的约定和规范
HTTP报文
HTTP报文是用于HTTP协议交互的信息,HTTP报文本身是由多行数据构成的字符串文本。客户端的HTTP报文叫做请求报文,服务器端的HTTP报文叫做响应报文。
报文组成
-
报文首部 : 客户端或服务器端需处理的请求或响应的内容及属性, 可以传递额外的重要信息。报文首部包括请求行和请求头部。
- HTTP报文首部的结构:由首部字段名和字段值构成的,中间用冒号“:”分割。首部字段格式: 首部字段名:字段值。
- HTTP首部字段通常有4种类型:通用首部,请求首部,响应首部,实体首部。
-
报文主体:报文主体主要包含应被发送的数据。通常,不一定有报文主体。
发展历程
-
HTTP/0.9 单行协议
- 请求GET /mypage.html
- 响应只有HTML文档
-
HTTP/1.0 构建可扩展
- 增加了Header
- 有了状态码
- 支持多种文档类型
-
HTTP/1.1 标准化协议
- 链接复用
- 缓存
- 内容协商
-
HTTP/2 更优异的表现
- 二进制协议
- 压缩header
- 服务器推送
- HTTP/3草案
应用场景
-
GET :基于“URL”地址问号传参
一般用于向服务器获取资源,例如查询数据库的数据等;
成功返回200
-
POST:基于“请求”主体把消息发送给服务器;、
一般用于请求新增或修改资源,例如提交表单,新增用户等;先发送header,服务器响应100,再发送data,成功响应201
-
PUT:修改资源
- DELETE:删除某个资源
- OPTIONS:请求一般是客户端向服务端判断对某个资源是否有访问权限。
- HEAD:请求一般是用来获取某个资源的metadata信息,比如说某份报告的关键描述信息等。