HTTP协议 WEB请求原理及方法
HTTP协议
(1)url结构:协议+服务器主机+目录结构+文件名称
(2)url完整结构:
<scheme>://<user>:<pwd>@<host>:<port>/<path>;<params>?<query>#<flag>DNS:域名解析
HTTP:超文本输出
HTTPS:加密传输的HTTPS<scheme>方案,协议
<user>:<pwd>用户名和密码
<host>服务器主机名称 IP地址 域名
<port>端口号
<path>路径,资源在服务器上的位置
<params>参数,状态跟踪的参数
<query>查询字符串 get请求提交放参数用
<flag>锚点
web请求原理的详解
- DNS查询
- DNS响应
- HTTP请求
- 请求处理
- HTTP响应
当用户在客户端发出某个请求时,URL传到DNS服务器进行域名解析,然后在响应给客户端
然后解析后的URL发出HTTP请求到web服务器,然后开始在文件系统、数据库、其他服务器之间处理请求,再响应给客户端。
- Message消息
(1)Message 消息/报文,是HTTP客户端与服务器间传递的数据块
(2)HTTP协议规定,消息必须符合特定的格式才能彼此理解
(3)Request Message:客户端服务器发送的请求消息
(4)Response Message:服务器端根据客户端的请求消息,返回给客户端的响应消息
- 请求消息Request Mesage
(1)请求起始行(请求头信息的第一行)
简单的增删改查过程
(2)请求头信息
1)浏览器告诉服务器,请求的是哪台主机
Host:www.baidu.cn
2)浏览器告诉服务器,请开启持久连接
Connection:keep-alive
3)浏览器告诉服务器,客户端的信息和浏览器的信息
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64)
4)告诉服务器,这个浏览器能够接受的压缩文件的格式
Accept-Encoding: gzip
5)告诉服务器,这个浏览器使用的自然语言
Accept-Language: zh-CN,zh;q=0.9
6)告诉服务器,这个请求是来自哪个页面
Referer: http://www.baidu.cn/
(3)请求主体
formdata Result
get 和 delete 没有请求主体
post 和 put 有请求主体
- 响应消息Response Message
(1)响应起始行
协议版本号HTTP/1.1
响应状态码 200
响应状态码的原因短句 OK
响应状态码:服务器告诉浏览器,响应状态
1xx 正在请求
2xx 200 成功
3xx 重定向 301 永远重定向
302 临时重定向
304 使用缓存
4xx 404 请求资源不存在
403 权限不够
405 请求的方法不被允许
5xx 500 服务器代码错误
(2)响应头
服务器告诉浏览器,已经开启了持久连接Connection:keep-alive
告诉浏览器,服务器响应的时间Date:Wed,25 Mar 2020 07:56:26 GMT
告诉浏览器,响应主体的类型:Content-Type:text/html
text/html 响应的主体是html文件
text/plain 普通文本
text/css css文件
application/javascript js文件
application/json json字符串
application/xml xml字符串
(3)响应主体(服务器传给浏览器的数据)
- 缓存
客户端浏览器将服务器响应回来的数据,进行自动保存,当再次访问这个数据,使用本地缓存的数据,不再进行网络连接。
(1)缓存的优点
减少冗余的数据传输,节省客户端流量
节省服务器端流量
降低了服务器资源的消耗和运行的要求
降低了由于远距离传输而造成的加载延迟
(2)缓存的机制
请求—>无缓存—>连接服务器—>存缓存—>客户端得到 请求—>有缓存—>够新鲜—>使用缓存—>客户端得到
请求—>有缓存—>不新鲜—>连接服务器确认是否过期—>没过期—>更新新鲜度—>客户端得到
请求—>有缓存—>不新鲜—>连接服务器确认是否过期—>已过期—>连接服务器—>存缓存—>客户端得到
(3)缓存的消息头信息
Cache-Control:no-cache 没有缓存
Cache=Control:max-age=3600; max-age 设置缓存处于新鲜的时间3600s 单位是秒
(4)网页如何添加缓存,需要修改头信息
<meta http-equiv="Cache-Control" content="max-age=3600">
- HTTP的性能优化
(1)http的连接过程
发起请求 — 建立连接 — 服务器处理请求 ---- 访问资源 — 构建响应 — 发送响应 — 记录日志
(2)http连接性能优化
减少连接的创建次数(开启持久连接)
减少请求的次数(使用缓存)
提高服务器端运行速度
尽量减少响应的长度
(3)安全的http协议(https)
HTTPS安全版本的http协议
s是什么 — ssl为数据通信特供安全支持
客户端发送请求 — 在ssl层进行加密 — 服务器接收到加密文件 — 在ssl层解密 — 得到请求明文
服务器发送响应 — 在ssl层进行加密 — 浏览器接收到加密文件 — 在ssl层解密 — 得到响应明文