通常http消息包括客户机向服务器的请求消息和服务器向客户机的响应消息。这两种类型的消息由一个起始行,一个或者多个头域,一个只是头域结束的空行和可选的消息体组成。http请求头提供了关于请求,响应或者其他的发送实体的信息。http的头信息包括通用头、请求头、响应头和实体头四个部分。每个头域由一个域名,冒号(:)和域值三部分组成。
一、前言
一次完整的http请求所经历的7个步骤
说明:http通讯机制是在一次完整的http通讯过程当中,web浏览器与web服务器之间将完成下列7个步骤:缓存
- 创建tcp链接
- web浏览器向web服务器发送请求命令 例如:get /sample/hello.jsp http 1.1
- web浏览器发送请求头信息
- web服务器应答 例如:http/1.1 200 ok
- web服务器发送应答头信息
- web服务器向浏览器发送数据
- web服务器关闭tcp链接
二、http请求头:
1、accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
意思:浏览器支持的请求 mime 类型分别是 text/html、application/xhtml+xml、application/xml 和 */*,优先顺序是它们从左到右的排列顺序
详解:
accept表示浏览器支持的 mime 类型;
mime的英文全称是 multipurpose internet mail extensions(多功能 internet 邮件扩充服务),它是一种多用途网际邮件扩充协议,在1992年最早应用于电子邮件系统,但后来也应用到浏览器。
text/html,application/xhtml+xml,application/xml 都是 mime 类型,也可以称为媒体类型和内容类型,斜杠前面的是 type(类型),斜杠后面的是 subtype(子类型);type 指定大的范围,subtype 是 type 中范围更明确的类型,即大类中的小类。
text:用于标准化地表示的文本信息,文本消息可以是多种字符集和或者多种格式的;
text/html :表示 html 文档;
application:用于传输应用程序数据或者二进制数据;
application/xhtml+xml :表示 xhtml 文档;
application/xml:表示 xml 文档。
2、 accept-encoding:gzip, deflate
意思:浏览器支持的压缩编码是 gzip 和 deflate。
详解:
accept-encoding表示浏览器有能力解码的编码类型;
gzip是 gnu zip 的缩写,它是一个 gnu 自由软件的文件压缩程序,也经常用来表示 gzip 这种文件格式。
deflate是同时使用了 lz77 算法与哈夫曼编码(huffman coding)的一个无损数据压缩算法。
3、 accept-language:zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3
意思:浏览器支持的语言分别是中文和简体中文,优先支持简体中文。
4、 connection:keep-alive;
connection表示客户端与服务连接类型;
keep-alive表示持久连接;
如果servlet看到这里的值为“keep - alive”,或者看到请求使用的是http 1.1(http 1.1默认进行持久连接),它就可以利用持久连接的优点,当页面包含多个元素时(例如applet,图片),显著地减少下载所需要的时间。要实现这一点,servlet需要在应答中发送一个content - length头,最简单的实现方法是:先把内容写入bytearrayoutputstream,然后在正式写出内容之前计算它的大小。
5、 cookie:jsessionid=2b5f5f6380ca6339cef98ad9a9e95ab4
缓存的sessionid和浏览器中的缓存,没有缓存是无法实现session相关功能的。
6、 host:localhost:8080
host表示请求的服务器网址;
7、 user-agent:mozilla/5.0 (macintosh; intel mac os x 10.11; rv:55.0) gecko/20100101 firefox/55.0
意思:使用的用户代理是 mozilla/5.0 (compatible; 域名)。
8、 pragma
指定“no - cache”值表示服务器必须返回一个刷新后的文档,即使它是代理服务器而且已经有了页面的本地拷贝,常用来禁止缓存。
三、 http响应头
1、 content-language:zh-cn
响应的语言类型,中文简体
2、 content-length:317
响应的内容的长度
3、 content-type:text/html;charset=utf-8
响应具体mime类型
4、 date:thu, 07 sep 2017 14:34:35
响应时间
5、 gmtserver:apache-coyote/1.1
响应的服务器类型
6、 http/1.1 200 ok
响应的状态码
详解:
在本例中,状态行给出的http状态代码是200,以及消息ok。状态行始终包含的是状态码和相应的简短消息,以避免混乱。最常用的状态码有:
◆200 (ok): 找到了该资源,并且一切正常。
◆304 (not modified): 该资源在上次请求之后没有任何修改。这通常用于浏览器的缓存机制。
◆401 (unauthorized): 客户端无权访问该资源。这通常会使得浏览器要求用户输入用户名和密码,以登录到服务器。
◆403 (forbidden): 客户端未能获得授权。这通常是在401之后输入了不正确的用户名或密码。
◆404 (not found): 在指定的位置不存在所申请的资源。
◆500:服务器异常。
到此这篇关于http协议常用的请求头和响应头响应详解说明(学习)的文章就介绍到这了,更多相关http请求头和响应头内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论