HTTP请求、响应报文格式



HTTP请求报文格式:

HTTP请求报文主要由请求行、请求头部、空行以及请求正文4部分组成


1,请求行由3部分组成,分别为:请求方式,URI(注意这里不是URL)以及协议版本组成,之间由空格分隔

请求方法主要包括GET、POST等;常见的协议版本有HTTP/1.1

2,请求头部包含很多有关客户端环境以及请求正文的有用信息

请求头部由“关键字/值”对组成,每行一对,关键字和值之间使用英文“:”分隔

3,空行,这一行非常重要,必不可少,表示请求头部结束,接下来为请求正文

4,请求正文,如以POST方式提交的表单数据

GET请求示例:

POST请求示例:

GET请求方式和POST请求方式到底有什么不同:

1,POST方式比GET更加安全(相对的)

GET方式请求参数放在请求行中作为请求URI的一部分,POST方式请求参数放在请求正文中,我们是可以对请求正文进行加密的

2,如果传输大数据量,只能使用POST方式

由于GET方式将请求参数放置在请求行URL中,故参数的长度受限于URL的长度限制;POST方式请求参数放在请求正文中,请求正文没有长度限制

HTTP响应报文格式:
HTTP响应报文主要由状态行、响应头部、空行以及响应正文4部分组成

1,状态行由3部分组成,分别为:HTTP协议版本,状态代码,状态代码描述

状态代码为3位数字,由1、2、3、4以及5开头,2开头的指响应成功,3开头的指重定向,4开头的指客户端错误,5开头的指服务端错误。详细的状态码就不介绍了,这里列举几个常见的:

200:响应成功

400:错误的请求,用户发送的HTTP请求不正确

404:文件不存在,也就是HTTP请求URI错误

500:服务器内部错误

2,响应头部与请求头部类似,也包含了很多有用的信息

3,空行,这一行非常重要,必不可少,表示响应头部结束,接下来为响应正文

4,响应正文,服务器返回的文档,最常见的为HTML网页

响应示例:

### HTTP 请求响应报文格式 #### HTTP 请求报文格式 HTTP请求由四个部分组成: 1. **请求行 (Request Line)**:包含请求方法、资源路径以及使用的HTTP版本号。 ``` GET /index.html HTTP/1.1 ``` 2. **请求头部 (Request Headers)**:提供关于客户端的信息,如浏览器类型、接受的内容编码方式等。每行代表一个键值对形式的头字段。 ```http Host: www.example.com User-Agent: Mozilla/5.0 ... Accept-Language: en-US,en;q=0.8 Cookie: sessionid=abcde... ``` 3. **空行**:用于分隔请求头部与主体,在最后一行头部之后必须有一个空白行表示结束。 4. **消息体 (Message Body, 可选)**:对于某些类型的请求(POST 或 PUT),这里包含了要发送给服务器的数据;GET 请求通常不带有实体内容。 #### HTTP 响应报文格式 HTTP响应也分为几个组成部分: 1. **状态行 (Status Line)**:包括协议版本、三位数字的状态码及其原因短语。 ``` HTTP/1.1 200 OK ``` 2. **响应头部 (Response Headers)**:类似于请求头部,提供了有关响应的一些元数据信息,比如日期时间戳、缓存控制指令等。 ```http Date: Tue, 15 Nov 2022 12:45:26 GMT Server: Apache/2.4.41 (Ubuntu) Content-Type: text/html; charset=UTF-8 Cache-Control: max-age=604800 ``` 3. **空行** 4. **消息体 (Message Body)**:实际返回给客户端的内容,可以是HTML页面、JSON字符串或其他任何形式的数据流。 --- 下面是一个完整的HTTP POST请求的例子[^2]: ```http POST /api/v1/resource HTTP/1.1 Host: example.org User-Agent: curl/7.64.1 Accept: */* Content-Length: 29 Content-Type: application/json {"key":"value"} ``` 而这是一个对应的HTTP成功响应实例: ```http HTTP/1.1 201 Created Date: Wed, 16 Mar 2022 12:00:00 GMT Server: nginx/1.18.0 Location: http://example.org/api/v1/resource/123 Content-Type: application/json Content-Length: 36 {"message": "Resource created successfully"} ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值