美文网首页
HTTP请求响应报文解析

HTTP请求响应报文解析

作者: StevenMD | 来源:发表于2017-05-18 15:15 被阅读0次

一、请求

HTTP请求示例:

请求行(request line)

POST /search HTTP/1.1

(以下都是请求头部(header))Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/vnd.ms-powerpoint,

application/msword, application/x-silverlight, application/x-shockwave-flash, */*  Referer:http://www.google.cn/">http://www.google.cn/Accept-Language: zh-cn

Accept-Encoding: gzip, deflate

User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; TheWorld)

Host:http://www.google.cn">www.google.cnConnection: Keep-Alive  Cookie: PREF=ID=80a06da87be9ae3c:U=f7167333e2c3b714:NW=1:TM=1261551909:LM=1261551917:S=ybYcq2wpfefs4V9g;

NID=31=ojj8d-IygaEtSxLgaJmqSjVhCspkviJrB6omjamNrSm8lZhKy_yMfO2M4QMRKcH1g0iQv9u-2hfBW7bUFwVh7pGaRUb0RnHcJU37y-

FxlRugatx63JLv7CWMD6UB_O_r(空行(blank line))hl=zh-CN&source=hp&q=domety(请求数据(request-body))

一个HTTP请求报文由请求行(request line)、请求头部(header)、空行(blank line)和请求数据(request-body)4个部分组成。

1.请求行。

请求行由 请求方法字段、URL字段和HTTP协议版本字段,3个字段组成,它们用空格分隔。例如,GET /index.html HTTP/1.1。

1). HTTP协议的请求方法字段有GET、POST、HEAD、PUT、DELETE、OPTIONS、TRACE、CONNECT。

常见有:

Get:GET方法要求服务器将URL定位的资源放在响应报文的数据部分,回送给客户端。使用GET方法时,请求参数和对应的值附加在URL后面,利用一个问号(“?”)代表URL的结尾与请求参数的开始,传递参数长度受限制。

Post:POST方法将请求参数封装在HTTP请求数据中,以名称/值的形式出现,可以传输大量数据,这样POST方式对传送的数据大小没有限制,而且也不会显示在URL中。

HEAD:HEAD就像GET,只不过服务端接受到HEAD请求后只返回响应头,而不会发送响应内容。当我们只需要查看某个页面的状态的时候,使用HEAD是非常高效的,因为在传输的过程中省去了页面内容。

2.请求头

请求头部由关键字/值对组成,每行一对,关键字和值用英文冒号“:”分隔。请求头部通知服务器有关于客户端请求的信息,典型的请求头有:

User-Agent:产生请求的浏览器类型。

Accept:客户端可识别的内容类型列表。

Host:请求的主机名,允许多个域名同处一个IP地址,即虚拟主机。

3.空行

最后一个请求头之后是一个空行,发送回车符和换行符,通知服务器以下不再有请求头。

4.请求数据

请求数据不在GET方法中使用,而是在POST方法中使用。POST方法适用于需要客户填写表单的场合。与请求数据相关的最常使用的请求头是Content-Type和Content-Length。

二、响应

HTTP响应示例:

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>

HTTP响应也由三个部分组成,分别是:状态行、消息报头、响应正文。

正如你所见,在响应中唯一真正的区别在于第一行中用状态信息代替了请求信息。状态行(status line)通过提供一个状态码来说明所请求的资源情况。

状态行格式如下:

HTTP-Version Status-Code Reason-Phrase CRLF

其中,HTTP-Version表示服务器HTTP协议的版本;Status-Code表示服务器发回的响应状态代码;Reason-Phrase表示状态代码的文本描述。状态代码由三位数字组成,第一个数字定义了响应的类别,且有五种可能取值。

1xx:指示信息--表示请求已接收,继续处理。

2xx:成功--表示请求已被成功接收、理解、接受。

3xx:重定向--要完成请求必须进行更进一步的操作。

4xx:客户端错误--请求有语法错误或请求无法实现。

5xx:服务器端错误--服务器未能实现合法的请求。

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

200 OK:客户端请求成功。

400 Bad Request:客户端请求有语法错误,不能被服务器所理解。

401 Unauthorized:请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用。

403 Forbidden:服务器收到请求,但是拒绝提供服务。

404 Not Found:请求资源不存在,举个例子:输入了错误的URL。

500 Internal Server Error:服务器发生不可预期的错误。

503 Server Unavailable:服务器当前不能处理客户端的请求,一段时间后可能恢复正常,举个例子:HTTP/1.1 200 OK(CRLF)。

相关文章

  • HTTP协议

    一、HTTP协议 二、请求流程 搜集数据 生成http请求报文 发送请求报文 接收响应报文 解析响应报文 展现结果

  • HTTP协议报文及Chrome Network常用功能

    HTTP协议报文 Http协议报文分为【Http请求报文】和【Http响应报文】 HTTP请求报文 Http请求报...

  • http报文解析, 网络通信协议类型,cookie,token,

    HTTP报文: HTTP报文的流动方向: 报文的语法: 1.1请求报文: 请求报文的格式: 1.2响应报文: 响应...

  • Android 基础之网络

    HTTP Http报文 http报文可以分为请求报文和响应报文。请求报文格式: 响应报文格式: 解释下各个标签: ...

  • HTTP报文内的HTTP信息

    HTTP报文   用于HTTP协议交互的信息被称为HTTP报文。请求端的HTTP报文叫做请求报文,响应段的叫做响应...

  • 网络请求相关

    HTTP 超文本传输协议 请求/响应报文 连接建立流程 HTTP的特点 1. 请求/响应报文 请求报文请求报文包括...

  • 网络

    HTTP HTTP是一个超文本传输协议 构成:请求报文&响应报文 请求报文 响应报文 HTTP的请求方式有哪些? ...

  • 网络初探

    HTTP 超文本传输协议 请求,响应报文 链接建立流程 HTTP的特点 请求/响应报文 请求报文: 请求行:方法(...

  • 《图解HTTP》之HTTP报文内的HTTP信息

    1.HTTP报文用于HTTP协议交互的信息被称为HTTP报文。请求端的HTTP报文叫做请求报文,响应端的叫做响应报...

  • HTTP报文

    什么是HTTP报文 用于HTTP协议交互的信息被称为HTTP报文。请求端的HTTP报文叫请求报文,响应端的叫响应报...

网友评论

      本文标题:HTTP请求响应报文解析

      本文链接:https://www.haomeiwen.com/subject/gfmsxxtx.html