一个HTTP请求报文由三部分组成:请求行、请求头部、请求数据。
下图给出了一般格式:
1.请求行
请求行包含了请求方法、URL、协议版本三部分,它们之间用空格分开。
HTTP协议的请求方法包括:GET、POST、HEAD、PUT、DELETE、OPTIONS、TRACE、CONNECT。
协议版本的格式为:HTTP/主版本号.次版本号,常用的有HTTP/1.0和HTTP/1.1
2.请求头部
请求头部由关键字/值对组成,每行一对,关键字和值用英文冒号“:”分隔。请求头部通知服务器有关于客户端请求的信息。
常见的请求头如下:
请求头部的最后会有一个空行,表示请求头部结束,接下来为请求正文,这一行非常重要,必不可少
3.请求数据
注:GET请求没有请求数据。
HTTP响应报文格式:
HTTP响应报文主要由状态行、响应头部、响应正文3部分组成
1.状态行
由3部分组成,分别为:协议版本,状态码,状态码描述,之间由空格分隔
状态代码为3位数字,200~299的状态码表示成功,300~399的状态码指资源重定向,400~499的状态码指客户端请求出错,500~599的状态码指服务端出错(HTTP/1.1向协议中引入了信息性状态码,范围为100~199)
这里列举几个常见的:
2,响应头部
常见响应头部如下:
响应示例:
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子集