文章目录
什么是数据协商
客户端发送一个请求的时候,会在请求头中声明,我此次请求想拿到的数据格式和一些其他内容的限制,而服务端会根据客户端请求的限制,将处理之后的数据按照客户端的要求,返回给客户端。
类型分类
请求类型
Accept
指定我想要的数据类型,就是可以接受返回的数据格式
Accept-Encoding
指定返回数据类型的编码方式,主要是限制服务端,对数据的压缩方式,例如:gzip,deflate, br(用的还比较少)
Accept-Language
返回的信息,是英文还是中文,· zh;q=0.9, · 代表可以接受的一种语言,q=0.9代表权重,数值越大,越优先返回,这种语言的数据
User-Agent
返回的页面是移动端的,还是PC端的,因为显示的布局不一样,Mozilla/5.0(很多老的服务器,只支持这种头),AppleWebKit (浏览器内核,苹果公司开发的),Chrome/76.0 (浏览器的版本号),Safari (因为内核是苹果公司开发的,所以会加上它)
返回类型
Content
和Accept相反,说明返回的数据是什么类型
Content-Type
说明,实际返回的数据类型是什么格式的,例如:text/javascript, aplication/javascript, text/html等,指定其一,让客户端知道该以什么样的方式来显示数据
在MIME Type中,有它可以声明的类型
MIME (Multipurpose Internet Mail Extensions) 是描述消息内容类型的因特网标准。
MIME 消息能包含文本、图像、音频、视频以及其他应用程序专用的数据。
不同的应用程序支持不同的 MIME 类型。
文章末尾会介绍常用的MIME TYPE
Content-Encoding
对应Accept-Encoding,服务端使用的实际压缩返回数据的格式
Content-Language
返回的是什么语言的数据
源码
使用方法
- 创建文件, client.js,test.html文件 *本地环境需要安装了node
- 在当前目录的命令行运行命令
node client.js
- 打开浏览器, 地址栏输入
http://localhost:8888
- 打开检查
图例
文件的具体内容
client.js
const http = require('http');
const fs = require('fs');
http.createServer( (request, response) => {
console.log("请求的路径", request.url);
if( request.url == '/') {
response.writeHead(200, {
'Content-Type': 'text/html; charset=utf-8',
'Content-Encoding': 'gizp'
})
const html = fs.readFileSync('./test.html', 'utf-8');
response.end(html);
}
}).listen(8888);
console.log("开始运行客服端 PORT: 8888")
test.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<div>我是网站页面</div>
</body>
<script src="/script.js"></script>
</html>
常用的MIME
Video | Type Extension | MIME Type |
---|---|---|
MPEG-4 | .mp4 | video/mp4 |
Ogg Video | .ogv | video/ogg |
Flash Video | .flv | video/x-flv |
A/V | Interleave | .avi |
Microsoft Windows Media | .wmv | video/x-ms-wmv |
RealMedia Variable Bitrate | .rmvb | application/vnd.rn-realmedia-vbr |
reine Textdateien | .txt | text/plain |
ZIP-Archivdateien | .zip | application/zip |
TAR | .tar | application/x-tar |
Portable Network Graphics (PNG) | .png | image/png |
JPEG Image | .jpeg, .jpg | image/jpeg |
Graphics Interchange Format | .gif | image/gif |
Waveform Audio File Format (WAV) | .wav | audio/x-wav |