浅谈HTTP请求

xiaoxiao2021-02-28  18

   HTTP通信机制是在一次 完整的HTTP 通信 过程 中 ,WEB浏览器 与  WEB  服务器 将完成 下列 七个步骤:

1. 建立TCP连接

   在HTTP开始工作之前,web浏览器 首先 要通过 网络 与 web 服务器 建立连接 ,该连接 是通过 TCP 来完成的,TCP协议 与 IP协议 共同 构建 Internet,即著名的TCP/IP协议族,因此Internet又被称为是 TCP/IP网络。HTTP 是比 TCP更高层次的 应用层 协议,根据 规则 ,只有底层协议建立成功之后,才能进行更高层协议的连接。因此,首先要建立TCP连接,一般TCP连接的端口号是80

2. Web浏览器向web服务器发送请求命令

   一旦建立了TCP连接,web浏览器就会向web服务器发送请求命令,例如:GET/sample/hello.jsp HTTP/1.1。

3. Web浏览器发送请求头信息

   浏览器发送请求命令之后,还要以头信息的形式向 服务器发送 一些别的信息,之后浏览器会通过发送一空白行 来通知 服务器,它已经结束了该 头消息 的发送。

4. Web服务器应答

   客户端向服务器发送请求后, 服务器会向客户端回送应答 ,HTTP/1.1 200 OK,应答的第一部分 是 协议的版本号 和 应答状态

5. Web服务器发送应答头信息

   如同客户端 会随同 请求 发送关于自身的信息一样,服务器也会随同应答向用户发送关于它自己的数据及被请求的文档,也会以一个空白行来结束应答头信息的发送。

6. Web服务器向浏览器发送数据

   紧接着就会按照 刚才发送给浏览器的应答头中 Content-Type 描述的数据格式 发送用户所请求的实际数据。

7. Web服务器关闭TCP连接

   一般情况下,一旦web服务器向浏览器发送了它所请求的数据之后,就会关闭TCP连接,但是如果浏览器或者服务器在其头信息中加入了这行代码:Connection:keep-alive。这样TCP连接在发送后 将仍然保持 打开的状态,于是,浏览器可以在这个连接上继续发送请求,保持连接 节省了为每个请求建立新连接所需的时间,还节约了网络宽带.

HTTP的请求信息由3部分组成

1.    请求方法(GET\POST)、URL 、协议/版本

2.    请求头(Request Header)

3.    请求正文

1.   请求方法、URL、协议/版本

2.   请求头

下面截取一个请求头的信息,方便理解:

  l  Content-Type:在请求头中,表示后面的文档属于什么MIME类型。在响应头中,是非常重要的内容,原则上说浏览器会根据 content—type来决定如何显示返回消息的主体内容。

  l  Host:指定请求资源的Interenet主机号和 端口号,必须表示请求url的原始服务器或者网关位置

  l  Accept:浏览器可以接受的MIME类型

  l  ACCEPT-Charset:浏览器可接受的字符集

  l  Accept-Encoding:浏览器能够进行编码的数据编码方式,比如gzip,servlert能够向支持gzip的浏览器返回经gzip编码的HTML页面,许多情形下可以减少5-10倍的下载时      间。

  l  Accept-Language:浏览器所希望的语言种类,当服务器能够提供一种以上的语言版本的时要用到

  l  Connection:表示是否需要持久连接

  l  Connection-Length:表示请求消息的正文长度

  l  Cookie:重要的请求头信息之一

  l  User-Agent:浏览器的类型

常见的MIME类型:

text/html : HTML格式text/plain :纯文本格式      text/xml :  XML格式image/gif :gif图片格式    image/jpeg :jpg图片格式 image/png:png图片格式

       以application开头的媒体格式类型:

   application/xhtml+xml :XHTML格式   application/xml     : XML数据格式   application/atom+xml  :Atom XML聚合格式       application/json    : JSON数据格式   application/pdf       :pdf格式     application/msword  : Word文档格式   application/octet-stream : 二进制流数据(如常见的文件下载)   application/x-www-form-urlencoded : <form encType=””>中默认的encType,form表单数据被编码为key/value格式发送到服务器(表单默认的提交数据的格式)

                  另外一种常见的媒体格式是上传文件之时使用的:

    multipart/form-data : 需要在表单中进行文件上传时,就需要使用该格式

3.   请求正文

 请求头和请求正文之间是一个空行,这个行非常重要,它表示请求头已经结束,接下来是请求正文
转载请注明原文地址: https://www.6miu.com/read-2347026.html

最新回复(0)