本文知识点:
- HTTP概念
- HTTP特点
- HTTP历史版本
- 请求消息数据组成
- 响应消息数据组成
1. HTTP概念
简单理解下:Hyper Text Transfer Protocol
超文本传输协议,定义了,客户端和服务器端通信时,发送数据的格式。
2. HTTP特点
- 基于TCP/IP的高级协议
- 默认端口是80
- 基于请求/响应模型的:一次请求对应一次响应
- 无状态的:每次请求之间相互独立,不能交互数据
- HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记
- 客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快
3. HTTP历史版本
- 1.0版本:每次请求都会建立新链接
- 1.1版本:可以重复利用之前建立的链接
4. 请求消息数据组成
4.1 请求数据概览
请求行 + 请求头 + 空行 + 请求体
-
GET
请求 -
POST
请求
注:由于是在Chrome浏览器查看的,所以不是标准的格式(标准的请求头和请求体之间有一个空行,浏览器为方便查看将空行分开了)
4.2 请求行
格式:请求方式 资源路径 协议/版本 注意:必须在第一行
请求方法 | 特点 |
---|---|
GET | 将请求参数追加在url后面,不安全,url长度限制get请求方式数据的大小,没有请求体,一般的H·TTP请求大多都是GET。 |
POST | 请求参数在请求体处,较安全。请求数据大小没有显示,只有表单设置为method=“post”才是post请求,其他都是get请求 |
HEAD | HEAD跟GET相似,不过服务端接收到HEAD请求时只返回响应头,不发送响应内容。所以,如果只需要查看某个页面的状态时,用HEAD更高效,因为省去了传输页面内容的时间。 |
DELETE | 删除某一个资源。 |
OPTIONS | 用于获取当前URL所支持的方法。若请求成功,会在HTTP头中包含一个名为“Allow”的头,值是所支持的方法,如“GET, POST”。 |
PUT | 把一个资源存放在指定的位置上。本质上来讲, PUT和POST极为相似,都是向服务器发送数据,但它们之间有一个重要区别,PUT通常指定了资源的存放位置,而POST则没有,POST的数据存放位置由服务器自己决定。 |
TRACE | 回显服务器收到的请求,主要用于测试或诊断。 |
CONNECT | CONNECT方法是HTTP/1.1协议预留的,能够将连接改为管道方式的代理服务器。通常用于SSL加密服务器的链接与非加密的HTTP代理服务器的通信。 |
4.3 请求头
请求头 | 含义 |
---|---|
Referer | 表示这个请求是从哪个url跳过来的,可以防盗链和流量统计 |
Accept | 告诉服务端,该请求所能支持的响应数据类型,专业术语称为MIME类型 |
Cookie | 客户端的Cookie就是通过这个报文头属性传给服务端 |
User-Agent | 浏览器通知服务器,客户端浏览器与操作系统相关信息 |
Connection | 表示客户端与服务连接类型;Keep-Alive表示持久连接,close已关闭 |
Host | 请求的服务器主机名 |
Content-Length | 请求体的长度 |
Content-Type | 请求的与实体对应的MIME信息。如果是post请求,会有这个头,默认值为application/x-www-form-urlencoded,表示请求体内容使用url编码 |
Accept-Encoding | 浏览器通知服务器,浏览器支持的数据压缩格式 |
Accept-Language | 浏览器通知服务器,浏览器支持的语言。各国语言(国际化i18n) |
Cache-Control | 指定请求和响应遵循的缓存机制 |
注:更多的请求头请查看这里:HTTP响应头和请求头信息对照表
4.4 请求体
POST请求时,格式:username=xiaoming&password=123
5. 响应消息数据组成
响应行 + 响应头 + 响应体