HTTP请求报文详解

目录

详解HTTP报文

请求行:

(1)请求方法

(2)URL

(3)http版本

请求头部


详解HTTP报文

HTTP协议主要是由三大部分组成:

  • 请求行(起始行):描述一个请求的基本信息;包含请求方法,URL,HTTP版本号
  • 请求头部(头部字段):以key-value值的形式详解HTTP报文;
  • 请求正文(消息正文):实际传输得数据,例如:文本,图片,视频等二进制数据

请求行:

请求行又被分为三个部分:

  • 请求方法:代表着你整个得HTTP报文得作用,如:GET,获取资源,POST,传输实体
  • URL:例如http://www.baiduu.com:80/path/to/myfile.html?key=1value#SomewhereinTheDocument
  • 版本号:表示报文使用得HTTP的协议版本

接下来我们对请求行的每个部分进行详细的解析:

(1)请求方法

  • GET:获取资源,向特定的资源发出请求。指定的资源经服务器端解析后返回相应内容。
  • POST传输实体:,虽然GET方法也能传输实体,但是为了便于区分,我们一般不用GET方法来传输实体信息,反而会用POST方法传输实体信息
  • PUT:传输文件,PUT方法用来传输文件。要求在请求报文的主体中包含文件内容,然后保存到请求URL指定的位置。
    但是鉴于HTTP的PUT方法自身不带验证机制,任何人都可以上传文件,存在安全性问题,因此一般的Web网站不会使用该方法。
  • HEAD获取相应首部,HEAD方法个GET方法一样,只是不返回报文主体部分。用于确认URL的有效性及资源更新的日期时间等。
  • DELETE删除文件,DELETE的方法用来删除文件,是与PUT相对应的方法,DELETE方法按请求URL删除指定的资源。
  • OPTIONS询问支持的方法,OPTIONS方法主要用来查询针对URL指定的资源支持的方法。
  • TRACE会显示服务器收到的请求,主要用于测试或者诊断
  • CONNECT要求用隧道协议连接代理,CONNECT方法要求在与代理服务器通信时建立隧道,
    实现用隧道协议进行TCP通信。

(2)URL

 首先是使用何种协议。例如http或者https,另外,浏览器也知道如何处理其他协议。例如,maito:协议指示浏览器打开邮件客户端;ftp:协议指示浏览器处理文件传输。

接下来是主机(域名),也代表管理该域名的机构。它指示了需要向网络上的哪一台主机发起请求。当然,也可以直接向主机的地址发起请求。但直接使用IP地址的场景并不常见

 接下来是端口号,两个主机之间要发起TCP连接需要两个条件,主机 + 端口。它表示用于访问Web服务器上资源的入口。如果访问的该Web服务器使用HTTP协议的标准端口(HTTP为80,HTTPS为443)授予对其资源的访问权限,则通常省略此部分。否组端口就是URL必须的部分。

上面是请求URL所必需的部分接下来局势URL具体的请求资源路径

 接下来可能会有的是路径,/path/to/myfile.html是Web服务器上资源的路径。以端口后面第一个/开始,到?之前结束,像是举例这个就代表一个html页面。

 ?key1=value是提供给Web服务器的额外参数。如果是GET请求,一般带有请求的URL参数,如果是POST请求,则一般不会出现参数,这些参数是以&进行分割的键值对

 #SomewhereinTheDocument是资源本身的某一部分的一个锚点。锚点代表资源内部的一种“书签”,它给予浏览器滚动到定义锚点的那个点上

(3)http版本

表示对应的HTTP协议版本

请求头部

请求头部全部是以key-value值存在的键值对,例如

Host:192.168.0.151:8000,就代表着对象所在的主机,其他键值对也都代表着对应的信息

接下来是一个空行

剩下的就是这个HTTP报文打算发送的正文消息啦

猜你喜欢

转载自blog.csdn.net/asdasd121312dasd/article/details/128124802
今日推荐