HTTP协议
- 相关概念
- 请求消息
- 响应消息
一、相关概念
1.1、什么是Http协议?
HTTP(Hyper Text Transfer Protocol):超文本传输协议,定义了客户端和服务器通信时发送数据的格式。属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。
1.2、Http协议的特点
- 基于TCP/IP的高级协议
- 默认端口号:80
- 基于请求/响应模型的(一次响应对应一次请求)
- 无状态的,每次请求之间相互独立,不能交互数据
1.3、Http协议的历史版本
- 1.0:每一次请求响应都会建立新的连接
- 1.1:会复用连接
二、请求消息数据格式
2.1、请求行
1)、请求行的格式如下:
请求方式 请求url 请求协议/版本
// GET /html/login.html HTTP/1.1
2)、HTTP协议的7种请求方式:
- GET:请求参数都在请求行中(位于URL之后),且请求参数的长度有限制。支持快取、缓存、保留书签等
- POST:请求参数都在请求体中,但是请求参数长度没有限制。
- HEAD:
- PUT:
- DELETE:
- CONNECT:
- OPTIONS:
2.2、请求头
1)、请求头格式如下:
请求头名称:值1 值2 ......
// User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:66.0) Gecko/20100101 Firefox/66.0
2)、常见的请求头:
- User-Agent:告诉服务器我使用的浏览器版本信息【可以通过后台获取此信息,用于解决浏览器兼容性问题】
- Referer:告诉浏览器我(当前请求)从哪儿来。可以用于防盗链、统计工作。
- Accept:告诉服务器,当前浏览器可以解析的文档信息。
- Accept-Encoding:告诉服务器,当前浏览器可以支持的压缩格式
2.3、请求空行
就是一个空行,用于分割请求头和请求体
2.4、请求体
主要用于封装Post请求消息的请求参数,个数如下
属性名=属性值
// name=zhangsan
// psw=qwer1234
// ......
三、响应消息数据格式
3.1、响应行
1)、响应行的格式
协议/版本 响应状态码 状态码描述
// HTTP/1.1 200 OK
2)、响应状态码
- 1XX:服务器接收客户端消息,但是没有接受完,等待一段时间后发送1XX状态码询问客户端还有没有数据
- 2XX:成功。
- 3XX:重定向。302,重定向。304,访问缓存(图片)。
- 4XX:客户端错误。404,请求路径不存在。403,没权限。
- 5XX:服务器端错误。
3.2、响应头
1)、响应头的格式
名称 格式
// Content-Type: text/html;charset=UTF-8
// Content-Length: 101
// Date: Web,06 Jun 2018 07:08:42 GMT
2)、常见的响应头
- Content-Type:服务器告诉客户端本次响应体的数据格式和编码方式(text/html;charset=utf-8)
- Content-disposition:服务器告诉客户端以什么格式打开响应体数据。(默认in-ling)
- in-line:默认值。在当前页面中打开
- attachment;filename=xxx:以附件形式打开响应体。文件下载等。
3.3、响应空行
一个空行,用于分割响应头和响应体。
3.4、响应体
真实传输的数据。