欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 焦点 > 3、HTTP请求报文和响应报文是怎样的,有哪些常见的字段?【中高频】

3、HTTP请求报文和响应报文是怎样的,有哪些常见的字段?【中高频】

2025/2/28 5:46:48 来源:https://blog.csdn.net/2402_84438596/article/details/145861552  浏览:    关键词:3、HTTP请求报文和响应报文是怎样的,有哪些常见的字段?【中高频】

HTTP请求报文主要是由 请求行、请求头部、空行和请求体 四部分组成(第一行必须是一个请求行(request line),用来说明请求类型、要访问的 资源 以及使用的HTTP版本。紧接着是一个首部(header)小节,用来说明服务器要使用的附加信息。在首部之后是一个空行,再此之后可以添加任意的其他数据[称之为主体(body)]。

HTTP请求头

  1. 请求行

  • 主要由请求方法字段、URL字段和HTTP协议版本字段3个字段组成,它们用空格分隔。

    (例如,GET /index.html HTTP/1.1

    • 请求方法字段 ,方法就是指定我们要取执行的操作,比如GET方法、PUT方法、POST、DELETE

    • URL字符字段,也就是资源的路径【注1】

    • HTTP协议版本字段,比如说 HTTP/1.1或HTTP/2.0

  1. 请求头部

  • 请求头部由 关键字:值 对组成,每行一对,关键字和值用英文冒号“:”分隔。

  • 请求头部用于通知服务器 关于客户端请求的信息,典型的请求头有:

    • Host:表示 客户端发送请求时,用来指定 服务器的域名

    • Connection 字段:最常用于客户端要求服务器使用「HTTP 长连接」机制,以便其他请求复用

    • Accept 字段:声明自己 可以接受哪些数据格式

除此以外,还有很多其他的常用字段,其中与请求体相关的最常使用的请求头是Content-Type和Content-Length

  1. 空行

    • 最后一个请求头之后是一个空行,通知服务器以下不再有请求头

    • 对于一个完整的请求报文来说 空行是必须的,否则服务器会认为 本次请求的数据 没有完全发送过来,将一直处于等待状态

  2. 请求体

    • 请求体不在GET方法中使用,而是在POST方法中使用

GET方法请求实例:

GET /books/?name=Professional%20Ajax HTTP/1.1  //请求行Host: www.wrox.com                             //请求头User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.6)Gecko/20050225 Firefox/1.0.1Connection: Keep-Alive//空行

post方式请求实例:

POST / HTTP/1.1             //请求行Host: www.wrox.com          //请求头User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.6)Gecko/20050225 Firefox/1.0.1Content-Type: application/x-www-form-urlencoded  //指定POST数据的编码类型Content-Length: 40Connection: Keep-Alive(此处空一行)name=Professional%20Ajax&publisher=Wiley  //请求数据,POST形式参数保存在这里,与请求数据相关的请求头是Content-Type和Content-Length。

HTTP响应报文用于传达 服务器 对 客户端 请求的 处理结果和数据,它主要由状态行、响应头部、空行和响应体 四部分组成(在响应中唯一真正的区别在于第一行中用状态 信息 代替了请求信息。状态行(status line)通过提供一个状态码来说明所请求的资源情况)

img

  1. 状态行

    • 由3部分组成,分别为:协议版本,状态码,状态码描述,之间由空格分隔

      • 状态码为3位数字,200〜299的状态码表示成功,300〜399的状态码指资源重定向,400〜499的状态码指客户端请求出错,500〜599的状态码指服务端出错( HTTP / 1.1向协议中引入了信息性状态码,范围为100〜199)

      • 常见的状态码:

        200 响应成功

        302 跳转,跳转地址通过响应头中的位置属性指定(JSP中Forward和Redirect之间的区别)

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

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

        404 请求资源不存在

        500 服务器内部错误

  2. 响应头部

    • 类似于请求头部,作用是把 服务器响应 的信息 告知 给客户端,主要包含的字段有:

      • Content-Length 字段:服务器在返回数据时,会有 Content-Length 字段,表明本次回应的数据长度

      • Content-Type 字段:用于服务器回应时,告诉客户端,本次数据是什么格式

      • Content-Encoding 字段:说明数据的压缩方法。表示服务器返回的数据使用了什么压缩格式

除此以外,还有很多其他的常用字段

  1. 空行

    • 最后一个响应头之后是一个空行,表示响应头的结束

  2. 响应体

    • 存放 服务器实际传输的数据, 可以是文本、HTML页面、图片、视频等,也可能为空

响应实例:

HTTP/1.1 200 OK //响应行Date: Sat, 31 Dec 2005 23:59:59 GMT //响应头Content-Type: text/html;charset=ISO-8859-1Content-Length: 122//空行<html><head><title>Wrox Homepage</title></head><body><!-- body goes here --></body></html>

【注1】

  • URL:不仅唯一标识了资源,还提供了资源的具体访问路径

  • URN: 统一资源标识符,用来唯一标识互联网上资源的一个字符串。它可以用来定位任何类型的资源,包括网页、图片、文件、视频、服务等

  • URI:它可以是URL,也可以是URN

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词