HTTP请求与响应
HTTP概述
HTTP,超文本传输协议。这个协议详细的规定了浏览器和万维网服务器之间通信的规则。
HTTP基于请求/响应模式的!
HTTP是无状态协议,如FTP就是有状态。 # 无状态就指协议对于事务处理没有记忆能力。它不会记录上一次请求。
URL:统一资源定位符:协议名://域名:端口/路径
请求协议格式
请求首行 #说明了请求的方式,请求路径和版本。例如:GET/index.html HTTP/1.1
请求信息 #请求头名称:请求头内容,即为key:vales格式,例如Host:localhost
空行 #用于份合请求体
请求体 #GET没有请求体,只有POST有请求体
GET请求
HTTP默认的请求方式就是GET
没有请求体
数据必须再1K之内
GET请求数据会暴露在浏览器的地址栏中
POST请求
数据不会出现地址栏
数据大小理论没有上线
有请求体
请求体中如果存在中文,会使用URL编码
常见的头
请求头(客户端向服务器发送):
Accept #说明浏览器可以接受服务器回发的类型 一般浏览器*/*表示所有类型
Host #请求主机地址
Accept-Language #浏览器支持的语言环境
Accept-Encoding #可以接受的压缩格式
Connection #状态有两种,一种是keep-alive 另外close,keep-alive
User-Agent #系统、浏览器版本等信息
Cookie #存储用户信息,记录一个身份标识
Referer #请求的来源,如果使用地址栏则不会有Referen
keep-alive表示之前的握手还可以用在接下来的请求当中去
close表示服务器给客户端发送信息之后就断开了
ps:目前主流浏览器一般不会对服务器发起connection:close的请求
响应头(服务端返回客户端的响应):
Content-Type:text/html;charset=UTF-8 #说明使用何种格式编码数据
Content-Length #请求体的长度
Content-Encoding:gzip #告诉客户端服务器发送的资源编码格式
Date:Tue,03 Apr 2020 03:52:28 #服务器发送资源的时间
Server:Tengine/14.6 #服务器和版本信息
Transfer-Encoding:chunked #告诉客户端,服务器发送的资源方式是分块的
Refresh:5;url=http://baidu.com #用于重定向,或者一个新资源被创建时,默认5秒后刷新重定向
在b站发现了一个比较详细的请求头和响应头详解:https://www.bilibili.com/read/cv6259072/
状态码:
200 #请求成功
404 #表示资源不见了
503 #接收连接过于频繁,如爬虫特别容易出503,也有一定反爬。
304 #浏览器接收到304相应的信息,说明文件未被修改,直接从缓存中返回内容显示处理。

浙公网安备 33010602011771号