服务器响应http请求原理,HTTP报文、HTTP方法和HTTP响应状态码详细解释 – 深入浅出HTTP原理...

一、HTTP报文详细解释

Web服务器和浏览器或客户端之间主要是通过HTTP协议进行数据交互,HTTP报文主要分为两部分:HTTP请求报文和HTTP响应报文,HTTP请求报文用于客户端向服务器请求数据的一种请求协议,而HTTP响应报文则是用户服务器响应客户端返回响应的数据,可以下载Wildpackets Omnipeek进行网络抓包分析HTTP报文,获取和学习更多有用的内容。

127cd346c0f24884e88920aa856c7f71.png

1、HTTP请求报文

一个HTTP请求报文包含3部分:

(1)请求行:方法,URI,协议/版本

(2)请求头信息

(3)请求正文数据

具体请求报文实例如下:

HTTP - Hyper Text Transfer Protocol

HTTP Command: POST [54-57]

URI: /cloudquery.php [58-72]

HTTP Version: HTTP/1.1 [74-81]

User-Agent: Post_Multipart [85-109]

Host: 192.168.1.6 [113-132]

Accept: */* [136-145]

Pragma: no-cache [149-163]

X-360-Cloud-Security-Desc:Scan Suspicious File [167-212]

x-360-ver: 4 [216-226]

Content-Length: 770 [230-247]

Content-Type: multipart/form-data; boundary=----------------------------bff2824ed28b [251-333]

在该实例中,请求行的请求方法为POST,URI定义一个资源,一般为相对于服务器根目录的路径,HTTP版本为1.1。

请求头主要是包含客户端环境的相关信息和正文内容的信息,例如Host为本机地址,Content-Length为数据长度,在更规范的请求头中会有更多的说明信息。

请求正文数据为一个文件,若使用POST提交注册信息,这里会保存用户帐号密码等信息。

2、HTTP响应报文

一个HTTP响应报文同样包含3部分:

(1)响应行:协议/版本,状态码,状态描述

(2)响应头信息

(3)响应正文数据

具体响应报文实例如下:

HTTP - Hyper Text Transfer Protocol

HTTP Version: HTTP/1.1 [54-61]

HTTP Status: 200 [62-64]

HTTP Reason: OK [66-67]

Server: nginx [71-82]

Date: Sun, 07 Apr 2019 22:22:19 GMT [86-119]

Content-Type: application/octet-stream [123-159]

Transfer-Encoding: chunked [163-187]

Connection: close [191-206]

Cache-Control: no-cache [210-231]

pragma: no-cache [235-249]

Line 1: e9 [255-256]

Binary Data:

在本例中,响应行的协议为HTTP协议1.1版本,状态码为200,表示成功响应。

响应头包含服务器环境和数据实体的的相关信息,如server为nginx,Cache-Control为no-cache。

响应正文数据Binary Data为二进制数据。

二、HTTP方法

HTTP方法的本质是用于定义对资源的操作,REST API设计规范准确使用了HTTP方法的语义化,这也是在后端开发中,设计API的基本规范。URL的本质是资源,HTTP的方法是对资源的操作,如/user,我们不需要再设计/user/add+delete+update+search,我们只需要设计/user一条URL,另外使用四个基本的HTTP方法代替资源操作:POST表示对资源的新增操作,DELETE表示删除资源,PUT表示更新资源,GET表示查询数据。

7e275833b315121d7f805d9abb4a75b7.png

另外,我们平时常用的方法是GET和POST,那么GET方法和POST方法有什么区别呢?其实不需要过多讨论,我们只需要从报文入手就行了,GET方法提交数据时,数据封装在请求行的URI中,所以数据会被暴露,而POST方法提交数据,数据被封装在请求正文中,具体的验证你可以下载上面推荐的网络抓包工具分析。

三、HTTP响应状态码

HTTP响应状态码一共可分为5类:

100-199:消息状态码,服务器临时响应,表示已收到请求,需要继续处理。

200-299:表示响应成功。

300-399:请求需要重定向。

400-499:发送的请求有问题。

500-599:服务器内部出现错误。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值