博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HTTP协议(Request、Response)
阅读量:5254 次
发布时间:2019-06-14

本文共 4266 字,大约阅读时间需要 14 分钟。

一、request

Request URL:要访问服务器的地址

Request Method: 常用的有GET和POST

Status Code:HTTP状态码   200 — 表示服务器成功返回网页         404 — 请求的网页不存在       505 — 服务不可用

以下内容为转载,转载地址:

Accept:text/html, application/xhtml+xml, application/xml;q=0.9, image/webp, image/apng, */*; q=0.8

作用:向服务器申明客户端(浏览器)可以接受的媒体类型(MIME)的资源

解释:浏览器可以接受 text/html、application/xhtml+xml、application/xml类型,通配符*/* 表示任意类型的数据。并且浏览器按照该顺序进行接收。( text/html —> application/xhtml+xml —> application/xml)
Accept-encoding: gzip, deflate, br

作用:向服务器申明客户端(浏览器)接收的编码方法,通常为压缩方法

解释:浏览器支持采用经过 gzip,deflate 或 br 压缩过的资源
Accept-Language: en-US,en;q=0.9,zh-CN;q=0.8,zh;q=0.7

作用:向服务器申明客户端(浏览器)接收的语言

解释:浏览器能够接受 en-US, en 和 zh-CN 三种语言,其中 en-US 的权重最高 ( q 最高为1,最低为 0),服务器优先返回 en-US 语言
延伸:语言与字符集的区别:zh-CN 为汉语,汉语中有许多的编码:gbk2312 等
Cache-control: max-age=0

作用:控制浏览器的缓存,常见值为 private、no-cache、max-age、alidate,默认为 private,根据浏览器查看页面不同的方式来进行区别

解释:浏览器在访问了该页面后,不再会访问服务器

Cookie:

作用:告诉服务器关于 Session 的信息,存储让服务器辨识用户身份的信息。

Refer:https://www.baidu.com/xxxxxxxxxx

作用:告诉服务器该页面从哪个页面链接的

解释:该页面从 https://www.baidu.com 中的搜索结果中点击过来的
Upgrade-insecure-requests:1

作用:申明浏览器支持从 http 请求自动升级为 https 请求,并且在以后发送请求的时候都使用 https

解释:当页面中包含大量的 http 资源的时候(图片、iframe),如果服务器发现一旦存在上述的响应头的时候,会在加载 http 资源的时候自动替换为 https 请求
User-agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36

作用:向服务器发送浏览器的版本、系统、应用程序的信息。

解释:Chrome 浏览器的版本信息为 63.0.3239.132,并将自己伪装成 Safari,使用的是 WebKit 引擎,WebKit伪装成 KHTML,KHTML伪装成Gecko(伪装是为了接收那些为Mozilla、safari、gecko编写的界面)
延伸:可以随便填(但不应该随便填)不过一般用于统计。
X-Chrome-UMA-Enabled、X-Client-Data :与 Chrome 浏览器相关的数据

Response

 

Accpet-ranges:bytes

作用:表明自己是否接收获取某个实体的一部分(比如文件的一部分)

解释:接受
延伸:服务器支持断点续传,以及同时下载文件的多个部分时,必须设置为 bytes
Alt-svc: hq=”:443”; ma=2592000; quic=51303431; quic=51303339; quic=51303338; quic=51303337; quic=51303335,quic=”:443”; ma=2592000; v=”41,39,38,37,35”

作用:服务器使用“alt-svc”(Alternative Servicesde)标识资源,可以通过不同的网络位置或者网络协议进行获取

Content-length:24211

作用:HTTP消息实体的传输长度

解释:该实体的传输长度(被 br 压缩后的长度为)24211
Content-encoding:br

作用:设置数据使用的编码类型(压缩类型)

解释:数据使用 br 进行压缩后返回到浏览器上
Content-type:text/html; charset=UTF-8

作用:设置响应体的媒体资源类型(MIME)

解释:服务器发送 html 文档,字符集为 UTF-8
Age:1037016

作用:表明该响应从缓存中拿到时响应的寿命,代理服务器当前的系统时间与此应答消息中的通用消息头Date的值之差

解释:该响应在缓存代理中存放了 1037016 秒
Date:Thu, 15 Feb 2018 20:31:45 GMT

作用:设置响应被服务器创建的时间

解释:在 GMT(格林威治标准时间)Thu, 15 Feb 2018 20:31:45,发送的响应
Expires:Fri, 01 Feb 2019 17:33:57 GMT

作用:设置响应体的过期时间。如果在过期之前进行访问,就会读取缓存中的版本。

解释:在 GMT(格林威治标准时间)Fri, 01 Feb 2019 17:33:57,在这个时间之前,客户端不用再向服务器发送请求
延伸:如果和 Cache-control 同时存在,那么被其中的 max-age 覆盖
Last-modified:Mon, 12 Dec 2016 14:45:00 GMT

作用:设置该文件在服务器端中最后被修改的时间

解释:在 GMT(格林威治标准时间)Fri, 01 Feb 2019 17:33:57,该文件被服务器所修改
Vary:Accept-Encoding

作用:服务器响应时根据请求头中的的值返回不同的内容的

过程:浏览器 —> 请求 —> squid —> 请求 —> apache
解释:
apache 在 response headers 中 返回了 vary: Accept-Encoding,
在 squid 中需要存储该 encoding 的值作为缓存 key 的值,比如,resourse_1 : gzip, resourse_2: deflate
下次请求到 squid,需要先找到缓存文件的索引文件,根据不同的 accept-Encoding(gzip、deflate)的值来找相应的文件。
p3p:CP=”This is not a P3P policy! See g.co/p3phelp for more info.”

作用:隐私安全平台(the Platform for Privary Preferences),网站向浏览器申明自己的隐私政策。

Server: gws

作用:设置服务器名称

Set-cookie:

作用:设置 http 的 Cookie

Status: 200

作用:设置HTTP的响应状态

解释:200 代表成功请求
Strict-transport-security: max-age=3600

作用:HSTS 策略,告诉 HTTP 客户端缓存 HTTPS 策略多少时间。

解释:在 3600 秒内,不管用户在浏览器输入不带协议的网址如:google.com 时,还是http协议的网址如:http://google.com ,都会默认将请求内部跳转到 https://google.com
X-frame-options: SAMEORIGIN

作用:点击劫持保护

解释:页面可以在相同域名页面的 frame中展示
X-content-type-options: nosniff

作用:设置浏览器的”MIME”攻击机制

解释:服务器中的内容是 image/png,那么浏览器就会显示为 image/png
X-xss-protection:1; mode=block

作用:设置浏览器的XSS防护机制

解释:浏览器如果检测到恶意代码,则不渲染恶意代码

Content-Encoding:gzip + Content-Type:text/html

作用:声明文档的压缩类型和文档的确切MIME类型

解释:文档使用的 MIME 类型是 text/html,并且对内容进行了 gzip 压缩
Etag + Last-Modified

作用:服务器给文件资源打上的标签,客户端传回 Last-Modified / Etag 给服务器验证缓存

流程:
客户端请求资源 example.html
服务器返回资源,并且给该 html 连同 Etag + Last-Modified 一起缓存
客户端再次请求资源 example.html,并且将 if-None-Match 一起传给服务器
服务器计算存在服务器中的 eamples.html de Etag,并且与客户端传来的 if-None-Match:Etag 或者 Last-Modified 进行匹配:
if-None-Match-false:返回 304 和空的响应头
if-None-Match-true:返回 200 和新修改的资源,如果其中的某个值没有改变,那么就返回 304 和一个空的响应头
Last-Modified:文件上次修改的时间(精确到秒)

Etag: 实体标签(Entity Tag),标识该资源的状态,ETag 如果改变,说明资源状态已经改变,能够修复 Last-Modified 的一些问题。

服务器的文件可能只改变了修改时间,而内容没有改变,客户端不希望认为文件已经修改

文件在秒以下的时间进行修改

转载于:https://www.cnblogs.com/louisyang/p/11157828.html

你可能感兴趣的文章
HDU 2548 A strange lift
查看>>
Linux服务器在外地,如何用eclipse连接hdfs
查看>>
react双组件传值和传参
查看>>
[Kaggle] Sentiment Analysis on Movie Reviews
查看>>
价值观
查看>>
mongodb命令----批量更改文档字段名
查看>>
CentOS 简单命令
查看>>
使用 SharedPreferences 分类: Andro...
查看>>
TLA+(待续...)
查看>>
题解: [GXOI/GZOI2019]与或和
查看>>
MacOS copy图标shell脚本
查看>>
国外常见互联网盈利创新模式
查看>>
Oracle-05
查看>>
linux grep 搜索查找
查看>>
Not enough free disk space on disk '/boot'(转载)
查看>>
android 签名
查看>>
vue项目中使用百度统计
查看>>
android:scaleType属性
查看>>
SuperEPC
查看>>
mysql-5.7 innodb 的并行任务调度详解
查看>>