欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

HTTP协议、缓存

程序员文章站 2022-07-09 08:24:03
...

HTTP协议(HyperText Transfer protocol 超文本传输协议)

规范了数据是如何打包和传递的
正在使用的版本http/1.1

URL
结构:协议+主机名称+目录结构+文件名称
http://www.jd.com/index/logo.png
URL完整结构:

<scheme>://<user>:<pwd>@<host>:<port>/<path>;<params>?<query>#<frag>

Scheme:方案,协议,以哪种方式获取服务器资源,不区分大小写,常见的协议 http/https/ftp
User :用户名
pwd:密码
host:主机名 127.0.0.1 localhost
Port: 端口号
Path:路径
Params:参数 session/cookie
query:查询字符串
frag:锚点

常见的协议和常见的端口号 :
HTTP协议、缓存

下面图显示从浏览器到服务器HTTP一个大致的工作流程:
HTTP协议、缓存

在这其中,请求和响应都是放在message中传递的
请求消息:Request message(请求起始行,请求头,请求主体)客户端发送给服务器

1、 请求起始行:
请求的方法:get客户端向服务器要数据的时候使用,特点:靠地址栏传递查询字符串,大小限制2kb,无请求主体
Post客户端向服务器提交数据时使用,特点:数据通过请求主体传递,有请求主体
Delete 客户端可以删除服务器的内容,一般禁用
Put 客户端可以存放数据到服务器,一般禁用
Connect 测试链接
Trace追踪请求的路径
Option 选项,预请求
Head 客户端只获取响应的消息头
请求的url
协议版本号http1.1
2、 请求头:
1、Host:www.tmooc.cn 告诉服务器客户端请求的是哪个主机
2、connection:keep-alive 告诉服务器持久连接
3、user-agent:(用户代理)告诉服务器浏览器的信息
4、accept-encoding:告诉服务器一会响应的时候接收什么文件 gzip, deflate
5、accept-language:告诉服务器自己能接收自然语言的类型:zh-cn….
6、referer:http://www.baidu.com.cn/告诉服务器请求来自于哪个网页
3、 请求主体:
form data(post方法会有)

响应消息:Response message(响应起始行,响应头,响应主体)服务器发送给客户端
1、响应起始行
1.1协议版本号http/1.1
1.2响应状态码/告诉浏览器服务器的响应状态是什么
1XX:100-199 提示信息
2XX:成功响应
3XX:301永久重定向,302临时重定向,304请求未被修改,命中缓存(之前访问过,在浏览器中已经存储了信息了)
4XX:404NOT FOUND 请求资源不存在,403Forbidden 权限不够,405Method not Allowed 请求的方法不被允许
5XX:服务器运行错误 500服务器错误,
1.3原因短句(对响应状态码简短的的解释说明)
2、响应头
2.1、
Date: Sun, 06 Oct 2019 06:25:46 GMT
2.2、
connection:keep-alive 告诉浏览器开启了持久连接
2.3、
content-type 告诉浏览器响应主体的类型是什么
text/html响应回来的数据时html文本
text/css响应回来的是样式文件
text/plain响应回来的是普通字符
application/javascript响应回来的是js代码
application/xml 响应回来的数据是xml格式的字符串
application/json响应回来的是json格式的字符串
image/png.jpg响应回来的是图片
3、响应主体
就是响应回来的数据 Response

**
HTTP性能优化
1、HTTP连接过程
发送请求->建立连接->处理请求->访问资源->构建响应->发送响应->记录日志
2、HTTP连接性能的优化
2.1、减少连接创建次数(开启持久连接)
2.2、减少请求的次数
2.3、提高服务器端运行速度
2.4、尽可能的减少响应数据的长度
3、安全的http协议——https
HTTPS:安全的http
SSL:为数据提供安全的支持
3.1、客户端发送请求消息时,在SSL层加密
服务端接收到加密文件,在SSL层解密
得到请求明文,对请求进行处理
3.2、服务端发送响应数据,在SSL层加密
客户端收到加密文件,在SSL层解密
等到响应明文,解析响应内容

缓存

客户端将服务器响应回来的数据自动的保存,当再次访问时,直接使用保存的数据

**

HTTP协议、缓存

缓存的优点:
1、减少冗余的数据传输,节省了客户端流量,
2、节省了服务器的带宽
3、降低了对服务器资源的消耗和运行要求
4、降低了由于远距离传输造成的延时加载

使用缓存理解缓存的新鲜度和过期的概念
缓存能否命中的完整流程:
1、请求–>无缓存–>连服务器–>存缓存–>客户端得到数据
2、请求–>有缓存–>够新鲜–>使用缓存–>客户端得到数据
3、请求–>有缓存–>连接服务器验证是否过期–>没过期–>更新缓存的新鲜度–>客户端得到
4、请求–>有缓存–>连接服务器验证是否过期–>以过期–>连接服务器–>存缓存–>客户端得到

与缓存相关的消息头
1、http/1.1的用法
Cache-Control:max-age=处于新鲜的秒数,取值0不缓存,取值3600秒缓存的新鲜秒数为1小时
从服务器将文件传到客户端之时起,此文档处于新鲜的秒数,这个一个相对值
2、expires http1.0用法
指定过期的确切时间点,是一个具体的时间点
Expires: Tue,31 jul 2019 02:56:16 GMT
一般情况,使用Cache-Control的相对时间
3、在网页中添加缓存(前端)

<meta http-equiv=“消息头” content=“值”>   
<meta http-equiv=“Cache-Control” content=3600> 
相关标签: http 缓存