简介
用于http协议交互的信息被称为http报文。请求端(客户端)的http报文叫做请求报文,响应端(服务端)的叫做响应报文。http报文本身是由多行数据构成的字符串文本。http报文大致可分为报文首部和报文主体两块。两者由最初出现的空行来划分。通常,并不一定要有报文主体。
请求报文
http请求报文有请求行(request line)、请求头部(header)、空行和请求数据4个部分组成。
如下图:
①-请求方法: GET和POST是最常见的http方法,除此之外还包括DELETE、HEAD、OPTIONS、PUT、TRACE。
②-请求对应的URL地址:它和报文头的Host属性组成完整的请求URL。
③-协议名称及版本号
④-HTTP报文头:报文头包含若干个属性,格式为"属性名:属性值",服务端据此获取客户端的信息。
- Accept:浏览器可接受的MIME类型;
- Accept-Charset:浏览器可接受的字符集;
- Accept-Encoding:浏览器能够进行解码的数据编码方式,比如gzip;
- Accept-Language:浏览器所希望的语言种类,当服务器能够提供一种以上的语言版本时要用到;
- Authorization:授权信息,通常出现在对服务发送的WWW-Authenticate头的应答中;
- Connection:表示是否需要持久连接。如果Servlet看到
- Content-Length:表示请求消息正文的长度;
- Cookie:这是最重要的请求头信息之一;
- From:请求发送者的email地址,由一些特殊的Web客户程序使用,浏览器不会用到它;
- Host:初始URL中的主机和端口;
- If-Modified-Since:只有当所有请求的内容再指定的日期之后又经过修改才返回它,否则返回304(Not Modified)应答;
- Pragma:指定"no-cache"值表示服务器必须返回一个刷新后的文档,即使它是代理服务器而且已经有了页面的本地拷贝;
- Referer:包含一个URL,用户从该URL代表的页面触发访问当前请求的页面;
- User-Agent:浏览器类型,如果Servlet返回的内容与浏览器类型有关则该值非常有用;
- UA-Pixels、UA-Color、UA-OS、UA-CPU:由某些版本的IE浏览器所发送的非标准的请求头,表示屏幕大小、颜色深度、操作系统和CPU类型。
⑤-报文体:将一个页面表单中的组件通过param1=value1¶m2=value2的键值对形式编码成一个格式化串,它承载多个请求参数的数据。不但报文体可以传递请求参数,请求URL也可以通过类似于"/chapter15/user.html?param1=value1¶m2=value2"的方式传递请求参数。
响应报文
http响应报文由三部分组成部分组成,分别是:状态行、消息报头、响应正文。
如下图:
①-报文协议及版本;
②-状态码及状态描述;
③-响应报文头:由多个属性组成。