HTTP协议介绍
HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。基于TCP的应用层协议,它不关心数据传输的细节,HTTP(超文本传输协议)是一个基于请求与响应模式的、无状态的、应用层的协议,只有遵循统一的 HTTP 请求格式,服务器才能正确解析不同客户端发的请求,同样地,服务器遵循统一的响应格式,客户端才得以正确解析不同网站发过来的响应。
HTTP支持无连接无状态
无连接:代表的是一次连接只能处理一次请求;
无状态:不会记录事务,代表不保存状态,HTTP协议自身不对客户端和服务器的状态进行保存,也就是说请求和响应不做持久化处理;
HTTP的特点:
1、支持客户/服务器模式;
2、简单快速;
3、灵活;
4、无连接;
5、无状态;
HTTP协议内容
完整的协议包含请求和响应两块
HTTP请求
请求行
请求行主要包含:请求方法,请求地址,请求版本
请求方法包含:
GET 请求资源,将数据在地址栏中显示
POST 提交资源,封装数据在请求体中,常用于表单提交
Head 获取响应头,跟GET类似,服务器响应的结果只包含响应头
PUT 替换资源
DELETE 删除资源
CPPIONS 允许客户端查看服务器的性能
TRACE 回显服务器收到的请求,用于测试或诊断
请求地址:
Uniforn Resource Locator:统一资源定位符(用于描述网上的资源)
格式:scheme://host[:port#]/path/.../[?query-string]
scheme:协议,比如http,https,ftp
host:域名或者IP地址
port:端口
path:资源路径
query-string:发送的参数
如:https://www.baidu.com/s?wd=xxx
HTTP协议版本
http1.0:当浏览器客户端与服务端建立连接之后,只能发送一次请求,一次请求之后连接关闭;
http1.1:当浏览器客户端与服务端建立连接之后,可以在一次连接中发送多次请求
请求头
Host:主机IP地址或者域名
User-Agent:客户端相关信息
Accept:指定客户端接收信息类型
Accept-charset:客户端接收的字符集
Accept-Encoding:可接受的内容编码
Accept-Language:接收的语言
Authorization:客户端提供给服务端,进行权限认证的信息
Cookie:携带的cookie信息
Referer:当前文档的URL,即从哪个连接过来的
Content-Type:请求体内容类型
Content-Length:数据长度
Cache-Control:缓存机制
Pragma:防止页面被缓存
请求正文
一般携带的请求参数
HTTP响应
主要包含:响应行,响应头,响应体
响应行
HTTP 版本号 + 响应状态码 + 状态说明
响应状态码:
1xx:提示信息,请求成功接收;
2xx:成功,请求被成功处理;
3xx:重定向相关;
4xx:客户端错误;
5xx:服务端错误;
响应头
Server:HTTP服务器的软件信息;
Date:响应报文的时间;
Expires:指定缓存过期时间;
Set-cookie:cookie;
Last-Modified:资源最后修改时间;
Content-Type:响应的类型和字符集;
Content-Length:内容长度;
Connection:表示保持TCP连接不关闭,不会永久保持连接,如Keep-Alive;
Location:指明重定向的位置,新的URL地址,如304的情况;
响应体
响应的数据,网页上HTML的源码