HTTP协议 WEB请求原理及方法

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请求原理的详解
在这里插入图片描述

  1. DNS查询
  2. DNS响应
  3. HTTP请求
  4. 请求处理
  5. 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层解密 — 得到响应明文


版权声明:本文为Janner668原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。