1、HTTP 介绍
HTTP 概念
HyperText Transfer Protocol,超文本传输协议,规定了浏览器和服务器之间数据传输的规则
。
- 数据传输的规则指的是请求数据和响应数据需要按照指定的格式进行传输。
- 如果想知道具体的格式,可以打开浏览器,点击
F12
打开开发者工具,点击Network
来查看某一次请求的请求数据和响应数据具体的格式内容,如下图所示:
HTTP 协议特点
- 基于
TCP
协议:三次握手进行链接,然后发送请求,安全 - 基于
请求-响应
模型:一次请求对应一次响应 - HTTP 协议是
无状态
的协议:对于事务处理没有记忆能力,导致每次请求-响应都是独立的- 缺点:多次请求间不能共享数据
- 优点:速度快
2、HTTP 请求数据格式
请求数据格式分为 3 部份
1、请求行
GET /login?username=lisi&password=123 HTTP/1.1
其中 GET 表示请求方法
/ 表示请求资源路径
HTTP/1.1 表示协议版本
2、请求头
第二行来说,格式为 key : value 形式
Host: www.itcast.cn
Connection: keep-alive
Cache-Control: max-age=0 Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 Chrome/91.0.4472.106
3、请求体
#POST请求的最后一部分,存放请求参数
username=lisi&password=123
GET 请求和 POST 请求区别
- GET 请求请求参数在请求行中,没有请求体。POST 请求请求参数在请求体中
- GET 请求请求参数大小有限制,POST 没有
#GET请求
GET /login?username=lisi&password=123 HTTP/1.1
Host: www.bunian.cn
Connection: keep-alive
Cache-Control: max-age=0 Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 Chrome/91.0.4472.106
…
#POST请求
POST /login HTTP/1.1
Host: www.bunian.cn
Connection: keep-alive
Cache-Control: max-age=0 Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 Chrome/91.0.4472.106
username=lisi&password=123
常见的 HTTP 请求头
- Host: 表示请求的主机名
- User-Agent: 浏览器版本,例如 Chrome 浏览器的标识类似 Mozilla/5.0 … Chrome/79,IE 浏览器的标识类似 Mozilla/5.0 (Windows NT …) like Gecko;
- Accept:表示浏览器能接收的资源类型,如 text/_,image/ _ 或者 * / *表示所有;
- Accept-Language:表示浏览器偏好的语言,服务器可以据此返回不同语言的网页;
- Accept-Encoding:表示浏览器可以支持的压缩类型,例如 gzip, deflate 等。
3、HTTP 响应数据格式
响应数据分为 3 部分
1、响应行(状态行)
响应数据的第一行
其中HTTP/1.1表示协议版本,200表示响应状态码,OK表示状态码描述
HTTP/1.1 200 OK
2、响应头
第二行开始,格式为key:value形式
Server: Tengine
Content-Type: text/html
Transfer-Encoding: chunked
3、响应体
最后一部分,存放响应数据
<html>
<head>
<title></title>
</head>
<body></body>
</html>
常见的 HTTP 响应状态码
- 200 ok 客户端请求成功
- 304 Not Modified 没有修改,使用缓存
- 404 Not Found 请求资源不存在
- 500 Internal Server Error 服务端发生不可预期的错误
常见的 HTTP 响应头:
- Content-Type:表示该响应内容的类型,例如 text/html,image/jpeg;
- Content-Length:表示该响应内容的长度(字节数);
- Content-Encoding:表示该响应压缩算法,例如 gzip;
- Cache-Control:指示客户端应如何缓存,例如 max-age=300 表示可以最多缓存 300 秒
© 版权声明
本站文章由不念博客原创,未经允许严禁转载!
THE END