知识大全 HTTP消息头字段

Posted 字节

篇首语:学向勤中得,萤窗万卷书。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 HTTP消息头字段相关的知识,希望对你有一定的参考价值。

Java网络编程从入门到精通(23):HTTP消息头字段  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  专题推荐 网络编程 基础到进阶教程

  一 通用头字段

   Connection

  这个字段只在HTTP 协议中存在 它决定了客户端和服务器进行了一次会话后 服务器是否立即关闭网络连接 在客户端最直接的表现是使用read方法(readLine方法也是一样)读完客户端请求的Web资源后 是否立即返回 (readLine返回null) Connection有两个值 Close和Keep Alive 当使用Connection Close时 和HTTP 协议是一样的 当read方法读完数据时立即返回 而使用Connection Keep Alive时 read方法在读完数据后还要被阻塞一段时间 直接读取数据超时时间过后 还继续往下执行 在上一篇文章中讨论的readHttpResponse(……)方法实现的第 行可以验证Connection的作用 下面让我们来使用HTTP模拟器来做一个实验

  ( )在HTTP模拟器中输入如下的域名

  

  ( )HTTP模拟器中输入如下的HTTP请求信息

   GET / HTTP/    Host: 

  ( )按两下回车(输入一个空行)后 发送请求消息 并得到如图 如示的HTTP响应消息头

  ( )输入y或Y后(在显示响应头后 要立刻输入Y或y) 显示响应消息的内容 在显示完内容后 大约过了 秒钟才进入 host port> 提示符(因为在sendHttpRequest()的实现代码中的 行设置了读取数据超时)

  ( )在 host port> 提示符下直接按回车 输入最近一次使用的域名和 端口 再次输入如下的HTTP请求

   GET / HTTP/     Host: Connection: close

  输入完以上的HTTP请求后 重新执行第 步操作 最后在显示HTTP响应消息内容后 直接直入了 host port> 提示符 除了这种方法 将请求的第一行改为GET / HTTP/ 这样也可以无需等待直接结束

  通过设置Connection 可以在下载Web资源(如多线程下载工具 Web浏览器等)后 立即断开网络连接 这样可以有效地降低客户机的资源消耗

   Date

  这个Date头字段描述了请求消息和响应消息被创建的时间 这个字段值是一个HTTP date类型 它的格式必须是GMT(格林尼治)时间 GMT时间是就是北京时间减 小时 下面是Date字段的一个例子

   Date: Tue    Nov    : :  GMT

   Content Length

  指定消息实体的字节数 在请求消息中POST方法必须使用Content Length来指定请求消息的实体内容的字节数 在响应消息中这个字段值指定了当前HTTP响应所返回的Web资源的字节数

  二 HTTP请求消息头字段

   Host

  Host字段用于指定客户端所访问的资源所在的主机名和端口号 如果端口号等于连接服务器时所使用的端口号 则端口号可以省略 下面是一个使用Host字段的一个例子

   Host: 

  这个字段是必须的 如果HTTP请求不包含这个字段 服务器将返回 (Bad Request)响应状态

   Accept

  Accept字段头确定客户端可以接收的媒体类型 一般的格式是 */* 或 类型/ 子类型 这个子段头可以传递多个媒体类型 中间用 隔开 如下面是一个Accept的例子

   Accept: image/gif image/jpg

  如果请求头使用上述的Accept字段值 则服务器端在动态生成网页的IMG头时将首先包含gif格式的图像 如果gif图象不存在 则包含jpg格式的图象

   User Agent

  这个字段头用于指定客户端是用什么访问的服务器 如果是IE 浏览器 并且本机安装了 net 则User Agent会有如下的值

   User Agent: Mozilla/  (patible; MSIE  ; Windows NT  ; SV ; Maxthon;  NET CLR  ;  NET CLR  ; InfoPath ; InfoPath )

  服务器可以通过这个字段检查客户机的浏览器版本 并根据不同的版本来确定向客户端发送的数据

   Range

  Range字段头通过服务器只传输一部分Web资源 这个字段头可以用来实现断点续传功能 有很多下载工具就是通过这个字段头进行断点续传的 Range字段可以通过三种格式设置要传输的字节范围

  ( )Range bytes=

  传输范围从 到 字节

  ( )Range bytes=

  传输Web资源中第 个字节以后的所有内容

  ( )Range bytes=

  传输最后 个字节

  三 HTTP响应消息头字段

   Accept Ranges

  这个字段说明Web服务器是否支持Range(是否支持断点续传功能) 如果支持 则返回Accept Ranges bytes 如果不支持 则返回Accept Ranges none

   Content Range

  指定了返回的Web资源的字节范围 这个字段值的格式是

  开始字节位置—结束字节位置/Web资源的总字节数

  下面是一个使用Content Range的例子

  Content Range /

  测试

  在HTTP模拟器中连接服务器 并输入如下的HTTP请求消息

   GET /nokiaguy/HttpSimulator rar HTTP/ Host: Range: bytes=

  返回的响应消息头如图 所示

  从上图可以看出 服务器支持断点继传功能 而且还可以验证Content Length的值是当前会话传过来的字节数 并不是Web资源的总的字节数 而Content Range字段值中 / 后面的数才是Web资源总的字节数

     Location

cha138/Article/program/Java/hx/201311/27047

相关参考

知识大全 asp.net 客户端浏览器缓存的Http头介绍

asp.net客户端浏览器缓存的Http头介绍  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!让浏览

吊篮头买入法的操作方法

吊篮头买入法的操作方法这是一般经验老道的投资者常用的致胜方法。使用这种方法有几种情况:(1)当股市因传闻利空消息出现暴跌,市场出现恐慌性她盘时,而这种利空经过慎重分析纯属于空头故意做空砸盘,实际是不可

知识大全 字段对象的概念和字段对象的建立

  数据集组件Table用于与数据表连接如与学生档案表XA连接数据表通常由若干个字段组成如XA由XAXA…XA共个字段组成实现对数据表中各个字段的数据处理就要用到字段对象TField  TField对

知识大全 sql实现多字段求和并查询

  下面就sql多字段求和并作为sql查询条件的方法进行了说明供您参考希望对您学习sql查询方面有所帮助  做一个字段求和的小sql查询查询一个表中字段字段和字段之和大于的结果故写了如下的SQL语句 

知识大全 删除完全重复和部分关键字段重复的记录

  重复记录分为两种第一种是完全重复的记录也就是所有字段均重复的记录第二种是部分关键字段重复的记录例如Name字段重复而其它字段不一定重复或都重复  第一种重复很容易解决不同数据库环境下方法相似  M

知识大全 sql判断且增加字段ADD

sql判断且增加字段ADD  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  sql判断且增加字段l

知识大全 Quota相关字段

Inode结构:Quota相关字段  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  在前面讲sup

知识大全 Mysql字段长度

数据库人员手边系列:Mysql字段长度  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  列类型需要

知识大全 SPGridView字段(单元格)换行

SPGridView字段(单元格)换行  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  前台  &

知识大全 oracle修改字段类型的方法

  因为业务需要修要修改某个字段数据类型有number()变为number()型  要是没有数据的话直接用以下语句即可  alter  tabletb_testmodifyperm