HTTP -- 请求/响应 结构

Posted yuerdong

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HTTP -- 请求/响应 结构相关的知识,希望对你有一定的参考价值。

一:一个HTTP请求报文由四个部分组成:请求行、请求头部、空行、请求数据。

1.请求行

  1.请求方法:GET POST

  2.URL字段

  3.HTTP版本字段

2.请求头

  1.Accept:浏览器可接受的mime类型。

  2.Accept-Charset:浏览器可接受的字符集。

  3.Accept-Encoding:浏览器能够进行解码的方式。

  4.Content-Length:表示请求消息的长度。

  5.Host: 客户端告诉服务器,想访问的主机名。

  6.Cookie:客户端可以向服务器带数据,只是非常重要的信息之一

3.空行

  1.他的作用是告诉服务器 请求头部信息到此为止。

4.请求的数据

  1.若方法是 GET,则该项为空。(数据都在url 地址栏里面)

  2.若方法是 post 字段,则通常放置的是要 提交的数据。

二:响应报文  : 响应头,响应行,响应主体。

1.响应行

  1.协议版本

  2.状态码

2.响应头

  1.Allow  (支持那些请求的方法。如:get post)

  2.Content- Type:表示属于什么类型文档。一般默认是 text/plain.通常指定为 text/html

  3.Date:当前的GMT时间。

  4.Expires:告诉浏览器把回送的资源缓存多长时间,-1或0则是不缓存。

  5.Last-Modified:文档的最后改动时间。客户可以通过If-Modified-Since请求头提供一个日期,该请求将被视为一个条件GET,只有改动时间迟于指定时间的文档才会返回,否则返回一个304(Not Modified)状态。

  6.Location:这个头配合302状态码使用,用于重定向接收者到一个新URI地址。表示客户应当到哪里去提取文档。Location通常不是直接设置的,而是通过HttpServletResponse的sendRedirect方法

  7.Refresh:告诉浏览器隔多久刷新一次,以秒计。

  8.Server:服务器通过这个头告诉浏览器服务器的类型。

  9.Set-Cookie:设置和页面关联的Cookie。Servlet不应使用response.setHeader(“Set-Cookie”, …),而是应使用HttpServletResponse提供的专用方法addCookie。

  10.Transfer-Encoding:告诉浏览器数据的传送格式。

  11.WWW-Authenticate:客户应该在Authorization头中提供什么类型的授权信息?在包含401(Unauthorized)状态行的应答中这个头是必需的。

  12.setDateHeader方法和setIntHeadr方法专门用来设置包含日期和整数值的应答头,前者避免了把Java时间转换为GMT时间字符串的麻烦,后者则避免了把整数转换为字符串的麻烦。

  13.setContentType:设置Content-Type头。大多数Servlet都要用到这个方法。

  14.setContentLength:设置Content-Length头。对于支持持久HTTP连接的浏览器来说,这个函数是很有用的。

  15。addCookie:设置一个Cookie(Servlet API中没有setCookie方法,因为应答往往包含多个Set-Cookie头)。

3.响应体

  1.可能是纯数据

  2.可能是 HTML 页面。

以上是关于HTTP -- 请求/响应 结构的主要内容,如果未能解决你的问题,请参考以下文章

HTTP响应报文结构

从零开始的Java开发2-10-4 Servlet与jsp进阶:请求与响应的结构请求转发与响应重定向Cookie

http报文结构

HTTP 报文结构

#WEB安全基础 : HTTP协议 | 0x10 请求和响应报文重点结构及常见头部

HTTP概念&协议报文结构&请求响应数据报分析