HTTP协议是超文本传输协议的缩写,英文是Hyper Text Transfer Protocol。超文本就是一种资源的表述,它(HTML)是从WEB服务器传输到本地浏览器用于展现。
restful架构,它是http设计师所遵循的架构。全称为:REpresentational State Transfer,翻译过来就是:表现层状态转移。用@Ivony老师的一句话归纳就是:html
URL定位资源,用HTTP动词(GET,POST,DELETE,DETC)描述操做。git
它也是在描述资源状态的一种转移。因为一种资源有着多种状态,因此客户端在接收一种资源的转移时是须要进行协商的。好比在中国访问一个url时是接收的资源多是中文的,而在其余国家访问同一个url时得到的资源多是他们国家的语言。github
每一个URL指向的资源能够是任何事物,能够有多种不一样的表述,例如一份文档能够有不一样语言的翻译、不一样的媒体格式、能够针对不一样的浏览器提供不一样的压缩编码等web
Accept-Language:en表示客户端要求URI是中文的;
Accept-Encoding:br表示客户端能够接受br类型的压缩方式。算法
而服务端接收到客户端的要求后,会返回符合要求的响应。浏览器
质量因子q:内容的质量、可接受类型的优先级
一、内容质量。举例,客户端发起一个图片的请求,这个图片只供快速浏览用的,那么就能够作很是高的压缩比,这时的质量q就能够比较低。若是这个图片用做医学的,那么q就比较大,由于不能容忍医用照片模糊以损失大量的细节。
二、可接受类型的优先级。举例:有一个URI即支持中文,又支持英文。可是但愿优先显示中文,就能用q来表示。服务器
媒体资源的MIME类型及质量因子
一、Accept: text/html, application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
二、Axxept: text/html, application/xhtml+xml,application/xml;1=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3restful
内容编码:主要指压缩算法
Accept-Encoding: gzip. deflate, br架构
表述语言
一、Accept-Language: zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7
二、Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2app
内容协商将决定服务器端生成不一样的HTTP响应体传输给客户端。
更多文章请移步楼主github,若是喜欢请点一下star,对做者也是一种鼓励