iOS 网络基础(请求头参数讲解)

Accept-Ranges:

WEB服务器表明自己是否接受获取某个实体的一部分(比如文件的一部分)的请求.bytes:表示接受,none:表示不接受

Cache-Control:这个字段用于指定所有缓存机制在整个请求/响应链中必须服从的指令private,no-cache,max-age,must-revalidate

Connection:

我们常见的是:Keep-Alive,就是我们俗称的长连接,保活.使用Keep-Alive可以降低我们的带宽,那么什么是带宽呢?

Content-Length:内容长度,带宽:单位时间内传输的数据量(数据量/s),单位:bit

1字节byte(1b)=8bit
1kb = 1024b
1MB/s =1024KB/S=(1024b*1024b)/s = 1024/8 kb/s = 128 kb/s

Content-Encoding:

内容编码格式:
1:gzip是一种由文件压缩程序「Gzip,GUN zip」产生的编码格式
2:deflate,是一种使用 Lempel-Ziv 压缩算法(LZ77)和哈夫曼编码的数据压缩格式
Accept-Encoding 和Content-Encoding是HTTP中用来对采用哪种编码格式传输正文进行协定的一对头部字段。

工作原理如下:

首先浏览器(也就是客户端)发送请求时,通过Accept-Encoding带上自己支持的内容编码格式列表;

服务端在接收到请求后,从中挑选出一种用来对响应信息进行编码,并通过Content-Encoding来说明服务端选定的编码信息

浏览器在拿到响应正文后,依据Content-Encoding进行解压。

服务端也可以返回未压缩的正文,但这种情况不允许返回Content-Encoding

内容编码的目的是优化传输内容的大小,通俗的讲就是尽心压缩。一般经过gzip压缩过的文本响应,只有原始大小的1/4(这个数据我现在还不确定)。对于文本类响应是否开启了内容压缩,是我们做性能优化时首先要检查的重要项目;而对于JPG/PNG这类本身已经高度压缩过的二进制文件,不推介开启内容压缩,效果几乎微乎其微,还浪费cpu

内容的编码针对的只是传输正文。在HTTP/1中,头部始终是以ASCII文本传输,没有经过任何压缩。不过这个问题在HTTP/2中已经解决,

Content-Type:

内容类型,一般是指网页中存在的Content-Type,用于定义网络文件的类型和网页的编码,决定浏览器将以什么形式、什么编码读取这个文件,这就是经常看到一些Asp网页点击的结果却是下载到的一个文件或一张图片的原因,Serite默认为text/plain

Date:数据时间(格林尼治时间)

Set-Cookie:

Cookie (储存在用户本地终端上的数据)
Cookie 是在 HTTP 协议下,服务器或脚本可以维护客户工作站上信息的一种方式。Cookie 是由 Web 服务器保存在用户浏览器(客户端)上的小文本文件,它可以包含有关用户的信息。无论何时用户链接到服务器,Web 站点都可以访问 Cookie 信息。](https://baike.baidu.com/item/cookie/1119)

Etag:用来帮助服务器控制Web端的缓存验证

Last-Modified:请求的资源最后被修改的时间,浏览器会向服务端发送If-Modified-Since报头,询问改时间之后文件是否被修改(例如在请求图片的时候进行了重定向,此时就会修改Last-Modified,并进行校验)

你可能感兴趣的:(iOS 网络基础(请求头参数讲解))