HTTP报文格式

1.HTTP请求方法

序号方法描述
1GET请求指定的页面信息,并返回实体主体。
2HEAD类似于get请求,只不过返回的响应中没有具体的内容,用于获取报头
3POST向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改。
4PUT从客户端向服务器传送的数据取代指定的文档的内容。
5DELETE请求服务器删除指定的页面。
6CONNECTHTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。
7OPTIONS允许客户端查看服务器的性能。
8TRACE回显服务器收到的请求,主要用于测试或诊断。

2 报文格式

  • 客户端发送一个HTTP请求到服务器的请求消息包括以下格式:请求行(request line)、
    请求头部(header)、空行和请求数据四个部分组成,下图给出了请求报文的一般格式。

2 通过实例来看看HTTP报文格式

  • 发送get请求
    http://localhost:8080/?key=123

  • 打印的请求报文

GET /?key=123 HTTP/1.1 #请求行,URL中包括数据
# 请求头
Host: localhost:8080
Connection: keep-alive
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9
  • 发送POST请求
<form action="http://localhost:8080" method="post">
    name<input name="name" type="text">
    submit<input type="submit">
</form>
  • 打印的报文
POST / HTTP/1.1
Host: localhost:8080
Connection: keep-alive
Content-Length: 14
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
Origin: null
Content-Type: application/x-www-form-urlencoded
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9
#此处为空行
#请求数据
name=xiangyida                                             
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、付费专栏及课程。

余额充值