概述
Http
超文本传输协议 HypeText Transfer Protocol
- 是一种用于分布式、协作式和超媒体传输的应用层协议。
HTTP
是万维网的数据通信的基础
http
是客户端与服务器做出请求和响应的标准(基于TCP)。
通常,由HTTP客户端发起一个请求,继而创建一个到服务器指定端口(默认80)的
TCP连接
。
HTTP服务器则在该端口上监听客户端的请求,一旦受到请求,就会向客户端返回一些响应,一般包含协议版本、HTTP状态码以及返回的内容
此外,在客户端和服务器中间还可能存在多个中间层,比如代理服务器、网关或者隧道等。
协议版本
- 1999.6 HTTP/1.1
- 2015.5 HTTP/2
- 2018 提出HTTP/3
基于QUIC
,标准制定中…
HTTP消息结构概述
- 客户端请求
- 请求行
- 请求头
- 空行
- 请求主体
body
Example
GET /hello.text HTTP/1.1 //请求行
User-Agent: curl/7.16.3 libcurl/7.16.3 OpenSSL/0.9.7l zlib/1.2.3
Host: www.example.com
Accept-Language: en, mi //请求头部
//空行
//请求数据
- 服务器响应
- 状态行
- 响应头
- 空行
- 响应正文
body
HTTP/1.1 200 OK //状态行
Date: Mon, 27 Jul 2009 12:28:53 GMT //消息报文
Server: Apache
Last-Modified: Wed, 22 Jul 2009 19:15:56 GMT
ETag: "34aa387-d-1568eb00"
Accept-Ranges: bytes
Content-Length: 51
Vary: Accept-Encoding
Content-Type: text/plain
//空行
//响应正文
接下来会对一些常见的知识点进行展开
- 客户端请求
- HTTP协议8种请求类型
- 服务端响应
- 常见状态码
- 报文主体
- 通用头
- 请求头
- 响应头
- 实体头
- 代理
Proxieds
- HTTPS
- TLS加密
- SSL加密
- HTTP2/HTTP3
参考:
水平有限,可能会有许多不准确的地方,欢迎指正!