HTTP报文格式

一、报文格式
     http报文的三个组成部分
     1.起始行,在请求报文中,起始行用于说明要做什么,响应报文中,起始行用于说明发生了什么。
     2.首部字段,起始行后跟随零个或多个首部字段,首部字段为key:value的格式。首部以空行为结束。
     3.主体,在空行后即为主体,主体部分是可选的,可以没有。
     这是请求报文的格式:
          <method> <request-URL> <version>
          <headers>
          </r/n>(严格来说,这个是属于上面的<headers>,但为了提醒必须有空行,还是写在这边,下同)
          <entity-body>
      这是响应报文的格式(注意,只有起始行的语法有所不同):
          <version> <status> <reason-phrase>
          <headers>
          </r/n>
          <entity-body>
二、起始行
    1.请求行
     如上面所说,请求行包含方法,请求的URL,版本三个部分。方法告知服务器应进行的操作,URL告知服务器要操作的资源,版本告知服务器所用的http版本。
     方法有很多种,我个人比较常用的是GET、HEAD和POST。
     GET:用于请求服务器返回某个资源
     HEAD:与GET类似,但只返回响应行和头部。
     POST:常用于向服务器提交数据。
     2.响应行
     如上面所说,响应行包括版本,状态码和原因短语三部分。
     状态码解释:
          100~199——信息性状态码
          200~299——成功状态码
          300~399——重定向状态码     <p65>
          400~499——客户端错误状态码
          500~599——服务器错误状态码
三、其他
     首部字段和报文主体涉及的有很多,日后有空再写。
HTTP报文格式分为请求报文和响应报文两种类型,下面分别给出它们的格式和示意图: 1. 请求报文格式 请求报文由请求行(request line)、消息报头(header)、空行(blank line)和请求主体(entity body)四个部分组成。 请求行包括请求方法(method)、请求URI(uniform resource identifier)和HTTP协议版本(version)三个字段,它们之间用空格分隔。例如: ``` GET /index.html HTTP/1.1 ``` 消息报头包括若干个字段,每个字段由字段名和字段值两部分组成,中间用冒号和空格分隔。不同的消息报头字段有不同的含义,例如: ``` Host: www.example.com User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:87.0) Gecko/20100101 Firefox/87.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 ``` 空行是为了区分消息报头和请求主体而存在的,它的内容为空,只有一个回车符和一个换行符。 请求主体是可选的,如果请求方法是GET或HEAD,则请求主体为空,否则请求主体就是要发送的数据。 下图是一个请求报文的示意图: ![HTTP请求报文格式示意图](https://img-blog.csdn.net/20180707172607804?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3hpYW9oYWl6aGFuZy9ibGFuazEyMzQ1/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/q/70) 2. 响应报文格式 响应报文由状态行(status line)、消息报头和响应主体(entity body)三个部分组成。 状态行包括HTTP协议版本、状态码(status code)和原因短语(reason phrase)三个字段,中间用空格分隔。例如: ``` HTTP/1.1 200 OK ``` 消息报头和请求报文的消息报头类似,也由若干个字段组成。例如: ``` Content-Type: text/html; charset=utf-8 Content-Length: 12345 ``` 响应主体是服务器返回的数据,例如HTML页面、JSON数据等等。 下图是一个响应报文的示意图: ![HTTP响应报文格式示意图](https://img-blog.csdn.net/20180707172856219?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3hpYW9oYWl6aGFuZy9ibGFuazEyMzQ1/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/q/70)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值