1.HTTP是什么?

直观的:1.浏览器地址栏输入地址,打开网页。2.Android中发送网络请求,返回对应内容。
理论上:HyperText Transfer Protocol 超文本传输协议。超文本:在电脑中显示的、含有可以指向其他文本的链接的文本。

2.HTTP的工作方式。

浏览器通过Http向服务器发送请求,服务器返回响应,浏览器通过其渲染引擎,也就是内核,将服务器返回的响应渲染到浏览器上。

这里有两个问题:1.浏览器是怎样将URL转化成发送给服务器的请求的?2.请求和响应的格式分别是什么呢?


HTTP的原理和工作机制
HTTP的工作方式

第一个问题:URL如何转化成报文呢?


HTTP的原理和工作机制
URL转化成报文

如上所示,http:是协议类型、//hencoder.com/是服务器地址、users?gender=male是路径path。


HTTP的原理和工作机制
请求报文格式

上图中详细写明了请求报文的格式,请求行中的path和body是给服务器看的。path用来寻找是服务器中的哪一个表,body是要插入的数据。

Request Method:

· GET:获取资源,没有Body。(从网上拿东西)
· POST:增加或修改资源,一定有Body。
·PUT:修改资源,有Body,只修改。
·DELETE :删除资源,没有Body。
·HEAD:与GET相同,不同的是服务器不会返回Body,可在下载时使用,先请求一下,查看文件大小等信息。


HTTP的原理和工作机制
响应报文格式

Response Status Code

对结果做出类型化描述。
·1xx:临时性消息。100:分段发生请求时,服务器接受到每段消息时返回100,提醒客户端可以继续发送了。101
·2xx:成功。
·3xx:重定向。
·4xx:客户端错误。如:400:参数不对,服务器无法理解该请求。401:未登录。等
·5xx:服务器错误。

Header

HTTP消息的元数据(metadata)
·Host:服务器的主机地址。并不用于寻址,网络请求通过DNS寻址,在找到这个IP后,将Host发送给主机,因为这个IP地址下可能有多台主机。
· Content-Type / Content-Length:Body 的类型 / 长度(字节)

1. Content-Type :

·text/html:html 文本,用于浏览器页面响应
·application/x-www-form-urlencoded:普通表单,encoded URL 格式 (一个要提交的表,只能传文本,不能传二进制数据)
·multipart/form-data:多部分形式,一般用于传输包含二进制内容的多项内容(带有文件传输)
·application/json:json 形式,用于 Web Api 的响应或 POST / PUT 请求
·image/jpeg / application/zip ...:单文件,用于 Web Api 响应或 POST / PUT 请求

2.Transfer-Encoding:chunked

表示 Body 长度无法确定,Content-Length 不能使用
此时的传输Body格式:
<length1>
<data1>
<length2>
<data2>
0(最后传输 0 表示内容结束)
目的:在服务端还未获取到完整内容时,更快对客户端做出响应,减少用户等待

3.Location

重定向的目标 URL

4.User-Agent

用户代理

5.Range / Accept-Range

指定 Body 的内容范围
如请求百度图片

6.Cookie / Set-Cookie

发送 Cookie / 设置 Cookie

7.Authorization

授权信息

Cache

1.Cache 和 Buffer的区别:

Cache缓存:等会儿可讷能会用到的数据。
Buffer缓冲:针对工作流。将上游的数据存起来稍后用。看视频的时候,网速快的时候存着的那段进度条,缓冲。

2.Cache-Control:

no-cache:服务器告诉客户端,可以缓存,但每次使用缓存时需要请求服务器,看缓存是否失效。
no-store:不许缓存。
max-age:缓存失效日期。
private / public: 中间节点是否要缓存

3.Last-Modified:

缓存最近更改的日期

REST

HTTP的架构风格。对系统的一些要求和限制。

RESTful HTTP

正确使用HTTP

相关文章:

  • 2021-05-28
  • 2021-11-28
  • 2021-07-29
  • 2021-08-28
  • 2022-12-23
  • 2022-12-23
  • 2021-12-27
猜你喜欢
  • 2021-04-11
  • 2021-08-27
  • 2021-08-14
  • 2021-12-24
相关资源
相似解决方案