其他分享
首页 > 其他分享> > Http请求报文格式和响应报文格式

Http请求报文格式和响应报文格式

作者:互联网

 

HTTP请求报文格式

客户端连上服务器后,向服务器发出获取某个Web资源的消息,称之为客户端向服务器发送了一个HTTP请求。

HTTP请求报文主要由请求行、请求头部、请求正文3部分组成。例如,GET /index.html HTTP/1.1

 

 

 

 

tips:回车符 \r 换行符 \n

 

请求行

由3部分组成,分别为:请求方法、URL以及协议版本,之间由空格分隔

请求方法包括GET、HEAD、PUT、POST、TRACE、OPTIONS、DELETE以及扩展方法,当然并不是所有的服务器都实现了所有的方法,部分方法即便支持,处于安全性的考虑也是不可用的

URL地址中如果包含中文,浏览器会自动对中文字符进行编码之后再发送

协议版本的格式为:HTTP/主版本号.次版本号,常用的有HTTP/1.0和HTTP/1.1

GET

请求获取Request-URI所标识的资源

POST

在Request-URI所标识的资源后附加新的数据

HEAD

请求获取由Request-URI所标识的资源的响应消息报头

PUT

请求服务器存储一个资源,并用Request-URI作为其标识

DELETE

请求服务器删除Request-URI所标识的资源

TRACE

请求服务器回送收到的请求信息,主要用于测试或诊断

CONNECT

HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器

OPTIONS

请求查询服务器的性能,或者查询与资源相关的选项和需求

 


请求头部

请求头部为请求报文添加了一些附加信息,由“键/值”对组成,每行一对,名和值之间使用冒号分隔

常见请求头如下:

请求头

说明

Host

接受请求的服务器地址,可以是IP:端口号,也可以是域名

User-Agent

发送请求的应用程序名称

Connection

指定与连接相关的属性,如Connection:Keep-Alive

Accept-Charset

通知服务端可以发送的编码格式

Accept-Encoding

通知服务端可以发送的数据压缩格式

Accept-Language

通知服务端可以发送的语言

请求头部的最后会有一个空行,表示请求头部结束,接下来为请求正文,这一行非常重要,必不可少

 

请求正文

可选部分,比如GET请求就没有请求正文

GET请求示例:

POST请求示例:

 

 

HTTP响应报文格式

所谓响应其实就是服务器对请求处理的结果,或者如果浏览器请求的直接就是一个静态资源的话,响应的就是这个资源本身。

HTTP响应报文主要由状态行、响应头部、响应正文3部分组成。

在这里插入图片描述

状态行

状态行格式为:HTTP-Version Status-Code Reason-Phrase CRLF,分别为:协议版本,状态码,状态码描述,之间由空格分隔。

其中,HTTP-Version表示服务器HTTP协议的版本;Status-Code表示服务器发回的响应状态代码;Reason-Phrase表示状态代码的文本描述。

状态代码由三位数字组成,第一个数字定义了响应的类别,且有五种可能取值。

常见状态代码、状态描述的说明如下:

状态码

说明

200                    

响应成功

301

永久重定向,搜索引擎将删除源地址,保留重定向地址

302

暂时重定向,重定向地址由响应头中的Location属性指定(JSP中Forward和Redirect之间的区别

由于搜索引擎的判定问题,较为复杂的URL容易被其它网站使用更为精简的URL及302重定向劫持

304

缓存文件并未过期,还可继续使用,无需再次从服务端获取

400

客户端请求有语法错误,不能被服务器识别

403

服务器接收到请求,但是拒绝提供服务(认证失败)

404

请求资源不存在

500

服务器内部错误

 

响应头部 

与请求头部类似,为响应报文添加了一些附加信息

常见响应头部如下:

响应头

说明

Server

服务器应用程序软件的名称和版本

Content-Type

响应正文的类型(是图片还是二进制字符串)

Content-Length

响应正文长度

Content-Charset

响应正文使用的编码

Content-Encoding

响应正文使用的数据压缩格式

Content-Language

响应正文使用的语言

响应示例:

 

PS:

1,URI、URL和URN之间的区别

URI全名为Uniform Resource Indentifier(统一资源标识),用来唯一的标识一个资源,是一个通用的概念,URI由两个主要的子集URL和URN组成

URL全名为Uniform Resource Locator(统一资源定位),通过描述资源的位置来标识资源

URN全名为Uniform Resource Name(统一资源命名),通过资源的名字来标识资源,与其所处的位置无关,这样即使资源的位置发生变动,其URN也不会变化

HTTP规范将更通用的概念URI作为其资源标识符,但是实际上,HTTP应用程序处理的只是URI的URL子集

标签:HTTP,请求,报文格式,URI,Http,响应,服务器,资源
来源: https://blog.csdn.net/weixin_38004638/article/details/113808190