文档库 最新最全的文档下载
当前位置:文档库 › http头部cache-control字段解析

http头部cache-control字段解析

http头部cache-control字段解析
http头部cache-control字段解析

关于cache 控制

HTTP/1.0 提供了一种简单的cache 机制。一个源头服务器,使用一个带有时间戳的Expires 头部标识在一个响应中,这样的意思就是表示何时过期。进一步还有条件请求:在请求头部中包含一个If-Modified-Since 字段,指定的是响应头中的Last-Modified 时间戳,这样服务器就响应304,暗示被缓存的条目是有效的,或者重新取一遍条目之后返回200。

HTTP/1.0 还包含一个机制:Pragma: no-cache,对于客户端而言,意思是一个请求不能从cache 中获得。

HTTP/1.0 的机制大体上是没有问题的,但是可能有缺点,没有允许服务器或者客户端对cache 进行完全的或者明确的控制。

HTTP/1.1 尝试提供明确的和可扩展的协议机制,保留了1.0 中的设计。

在 1.1 中,一个cache 条目在达到过期时间之前是新鲜的,在过期之后则是不新鲜的。一个cache 不需要丢弃一个不新鲜的条目,但是在返回给客户端之前,它通常必须重新从源头服务器那里获得,协议允许源头服务器和终端用户来覆盖这种行为。

在HTTP/1.0 中,一个cache 条目使用If-Modified-Since 条目来重新强刷获得一个条目,它使用了绝对时间戳,带来的明显问题就是时间偏移可以。因此在HTTP/1.1 中引入了更一般的概念:etag。HTTP 服务器将etag 头部放在响应中。但问题是在大网站中多台机器的同一资源etag 应该相同,但实际计算出来不同,因此不适合使用。

HTTP/1.1 包括一些额外的新的条件请求头,除了If-Modified-Since 之外。最基本的是

If-None-Match,它允许一个客户端对一个请求的资源进行多种表示(tag),这些表示发给服务器之后如果没有一个表示可以匹配资源当前的tag 值,服务器将返回一个正常的响应,否则它将返回一个304 头部并带有etag 指示哪个表示是合理的。

HTTP/1.1 也加入了一些新的条件请求头部:If-Unmodified-Since 和If-Match,它们创建了其他类型的请求条件,特别是在Range 请求中。

HTTP/1.1 头部添加了Cache-Control 头部,既可以出现在请求中,又可以出现在响应中。由于在 1.0 当中绝对时间戳的缺陷,1.1 中使用max-age 带上的是相对时间表示cache 的最大有效时长。它也引入了单独的Age 头部,因此cache 可以暗示一个响应已经在cache 中存在了多久。

由于用户有隐私需求,private 和no-store 指令允许服务器和客户端阻止部分或者全部内容的存储,实际上,这并不保证隐私,真正的加密机制才能保证隐私。

cache-control 的值分为几类:

什么是可以被cache 的:

public

指示响应可被任何缓存区缓存。

private

指示对于单个用户的整个或部分响应消息,不能被共享缓存处理。这允许服务器仅仅描述当用户的部分响应消息,此响应消息对于其他用户的请求无效。

no-cache

指示请求或响应消息不能缓存,则cache 不能使用响应来满足随后请求,它必须成功与源头服务器校验之后才可以。

cache 可以保存什么

no-store

用于防止重要的信息被无意的发布。在请求消息中发送将使得请求和响应消息都不使用缓存。这个指令适用于整个消息,可以应用在请求头或者响应头中。如果在请求中发送,则一个cache 不能存储这个请求或者随后的响应。如果发送在响应中,一个cache 不可以存储响应的任何部分以及相关的部分。

基本过期机制的修改

一个条目的过期时间可以由源头服务器使用Expires 头部或者max-age 来指定。

cache-control max-age 暗示了响应是可以被cache 的(比如public)除非某些更严格的指令也在场。

如果一个响应同时包括Expires 头部和max-age,则Expires 将被覆盖。

max-age

指示客户端愿意接受存活时间不大于这里指定的描述的响应。除非max-stale 也存在,否则客户端将不愿意接受不新鲜的响应。

min-fresh

客户端要一个新鲜时间至少是这么多的响应。

max-stale

指示客户端愿意接受一个超过了过期时间的响应。如果max-stale 后面带有值,则它不能接受过期时间超过这个值的响应,如果没有值,则可以接受任何时候的过期响应。

cache 的校验和重新加载

must-revalidate

协议包括一个机制来让源头服务器要求所有后续响应都必须重新刷新一个cache 条目。当一个must-revalidate 指令出现在响应中时,cache 在首先从源头服务器那里重新刷新之前,不可以使用这个不新鲜的条目。

在Firefox 中,请求Nginx 下的静态文件,如果先前已经请求过:

If-Modified-Since: Wed, 24 Jun 2009 11:09:27 GMT

Cache-Control: max-age=0

HTTP/1.x 304 Not Modified

Server: nginx/0.7.64

Date: Tue, 08 Dec 2009 06:06:23 GMT

Last-Modified: Wed, 24 Jun 2009 11:09:27 GMT

Connection: keep-alive

如果F5 刷新,或者再开,就是上面的结果,如果Ctrl + F5 刷新,则:

Pragma: no-cache

Cache-Control: no-cache

HTTP/1.x 200 OK

Server: nginx/0.7.64

Date: Tue, 08 Dec 2009 06:08:50 GMT

Content-Type: image/gif

Content-Length: 1853

Last-Modified: Wed, 24 Jun 2009 11:09:27 GMT

Connection: keep-alive

Accept-Ranges: bytes

在Nginx 中,有几个地方是和响应头部cache 相关的几个字段的涉及:

ngx_http_not_modified_filter_module.c:根据if_modified_since 来决定响应代码;

ngx_http_core_module 中的if_modified_since:让你决定如何处置If-Modified-Since 字段;upstream, proxy, fastcgi 模块:对cache-control 的控制;

ngx_http_headers_filter_module.c:让你自己加额外的头部;

ngx_http_header_filter_module.c: 在这里确定输出头部字符串。

http协议正文

竭诚为您提供优质文档/双击可除 http协议正文 篇一:http协议 http协议详解 引言 http是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于1990年 提出,经过几年的使用与发展,得到不断地完善和扩展。目前在www中使用的是http/1.0的第六版,http/1.1的规范 化工作正在进行之中,而且http-ng(nextgenerationofhttp)的建议已经提出。http协议的主要特点可概括如下: 1.支持客户/服务器模式。 2.简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有get、head、post。每种方 法规定了客户与服务器联系的类型不同。由于http协议简单,使得http服务器的程序规模小,因而通信速度很快。 3.灵活:http允许传输任意类型的数据对象。正在传输的类型由content-type加以标记。 4.无连接:无连接的含义是限制每次连接只处理一个请

求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。 5.无状态:http协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。 一、http协议详解之uRl篇 http(超文本传输协议)是一个基于请求与响应模式的、无状态的、应用层的协议,常基于tcp的连接方式,http1.1版本中给出一种持续连接的机制,绝大多数的web开发,都是构建在http协议之上的web应用。 httpuRl(uRl是一种特殊类型的uRi,包含了用于查找某个资源的足够的信息)的格式如下: http://host[":"port][abs_path] http表示要通过http协议来定位网络资源;host表示合法的internet主机域名或者ip地址;port指定一个端口号,为空则使用缺省端口80;abs_path指定请求资源的uRi;如果uRl中没有给出abs_path,那么当它作为请求uRi时,必须以“/”的形式给出,通常这个工作浏览器自动帮我们完成。eg: 1、输入:

计算机网络实验-HTTP、FTP协议分析

实验二HTTP、FTP协议分析 1. 本次实验包括HTTP、FTP两个协议的分析(详见一、二)。 2. 参考文档所述步骤,完成数据包的捕获并进行分析; 3. 认真撰写实验报告,叙述实验过程要层次分明,对关键的过程或结果截图说明、分析,回答实验文档所提的思考题、问题。 一、超文本传输协议(HTTP)分析 【实验目的】 掌握HTTP协议的原理和报文格式; 了解HTTP协议的工作过程; 了解应用层协议与传输层协议的关系。 【实验内容】 用浏览器打开网页,捕获HTTP报文并进行分析 编辑一个HTTP数据报文并进行发送,并捕获该报文进行分析。 【实验步骤】 步骤一:使用浏览器打开网页,捕获HTTP数据包并分析: (1) 在主机上打开协议分析仪,点击工具栏上的“过滤器”,“类型过滤器”的下拉列表中 选择“HTTP协议”,确定后开始进行数据捕获:

(2) 使用实验室主机上的浏览器,例如IE,打开一个网页,如URL是 HTTP//https://www.wendangku.net/doc/f011895316.html, (3) 在协议分析器中找到捕获的数据包,观察HTTP请求报文和响应报文,以及其中所使用的命令:

【思考问题】 结合实验过程中的实验结果,问答下列问题: 1. 当实验主机上同时打开多个浏览器窗口并访问同一WEB站点的不同页面时,系统是根据什么把返回的页面正确地显示到相应窗口的?一个主页是否只有一个连接? 2. 请求主页后,返回的浏览器内容的字节长度是多少? 3. 如果请求一个不存在的网页,服务器将会应答什么? 答: 1. 当实验主机上同时打开多个浏览器窗口并访问同一WEB站点的不同页面时,系统是根据地址信息把返回的页面正确地显示到相应窗口的,一个主页是只有一个连接。 2. 请求主页后,返回的浏览器内容的字节长度是 3. 如果请求一个不存在的网页,服务器将会应答404错误。 二、FTP协议分析 【实验目的】 1、掌握FTP协议的工作原理; 2、了解FTP协议的常用命令,并领会其链路管理、理解FTP的主动模式和被动模式 3、了解应用层协议与传输层协议的关系; 【实验内容】 1. 登录FTP服务器,并捕获FTP报文进行分析;

HTTP协议的头信息详解

HTTP协议的头信息详解 HTTP协议的头信息详解 通常HTTP消息包括客户机向服务器的请求消息和服务器向客户机的响应消息。这两种类型的消息由一个起始行,一个或者多个头域,一个只是头域结束的空行和可选的消息体组成。HTTP的头域包括通用头,请求头,响应头和实体头四个部分。每个头域由一个域名,冒号(:)和域值三部分组成。域名是大小写无关的,域值前可以添加任何数量的空格符,头域可以被扩展为多行,在每行开始处,使用至少一个空格或制表符。通用头域通用头域包含请求和响应消息都支持的头域,通用头域包含Cache-Control、Connection、Date、Pragma、Transfer-Encoding、Upgrade、Via。对通用头域的扩展要求通讯双方都支持此扩展,如果存在不支持的通用头域,一般将会作为实体头域处理。下面简单介绍几个在UPnP消息中使用的通用头域。 Cache-Control头域Cache -Control指定请求和响应遵循的缓存机制。在请求消息或响应消息中设置Cache-Control并不会修改另一个消息处理过程中的缓存处理过程。请求时的缓存指令包括no-cache、no-store、max-age、max-stale、

min-fresh、only-if-cached,响应消息中的指令包括public、private、no-cache、no- store、no-transform、 must-revalidate、proxy-revalidate、max-age。各个消息中的指令含义如下:Public指示响应可被任何缓存区缓存。Private指示对于单个用户的整个或部分响应消息,不能被共享缓存处理。这允许服务器仅仅描述当用户的部分响应消息,此响应消息对于其他用户的请求无效。no-cache指示请求或响应消息不能缓存no-store用于防止重要的信息被无意的发布。在请求消息中发送将使得请求和响应消息都不使用缓存。max-age指示客户机可以接收生存期不大于指定时间(以秒为单位)的响应。min-fresh指示客户机可以接收响应时间小于当前时间加上指定时间的响应。 max-stale指示客户机可以接收超出超时期间的响应消息。如果指定max-stale消息的值,那么客户机可以接收超出超时期指定值之内的响应消息。Date头域Date头域表示消息发送的时间,时间的描述格式由rfc822定义。例如,Date:Mon,31Dec200104:25:57GMT。Date描述的时间表示世界标准时,换算成本地时间,需要知道用户所在的时区。Pragma头域Pragma头域用来包含实现特定的指令,最常用的是Pragma:no-cache。在HTTP/1.1协议中,它的含义和Cache- Control:no-cache相同。请求消息请求消息的第一行为下面的格式:

利用wireshark分析HTTP协议实验报告

利用wireshark分析HTTP协议实验报告 姓名:杨宝芹 学号:2012117270 班级:电子信息科学与技术 时间:2014.12.26

利用wireshark分析HTTP协议实验报告 一、实验目的 分析HTTP协议。 二、实验环境 连接Internet的计算机,操作系统为windows8.1; Wireshark,版本为1.10.7; Google Chrome,版本为39.0.2171.65.m; 三、实验步骤 1.清空缓存 在进行跟踪之前,我们首先清空Web 浏览器的高速缓存来确保Web网页是从网络中获取的,而不是从高速缓冲中取得的。之后,还要在客户端清空DNS 高速缓存,来确保Web服务器域名到IP地址的映射是从网络中请求。 2.启动wireshare 3.开始俘获 1)在菜单中选择capture-options,选择网络,打开start。如下图:

2)在浏览器地址栏中输入https://www.wendangku.net/doc/f011895316.html,,然后结束俘获,得到如下结果: 3)在过滤器中选择HTTP,点击apply,得到如下结果:

在菜单中选择file-save,保存结果,以便分析。(结果另附) 四、分析数据 在协议框中选择“GET/HTTP/1.1”所在的分组会看到这个基本请求行后跟随 着一系列额外的请求首部。在首部后的“\r\n”表示一个回车和换行,以此将该 首部与下一个首部隔开。“Host”首部在HTTP1.1版本中是必须的,它描述了URL 中机器的域名,本实验中式https://www.wendangku.net/doc/f011895316.html,。这就允许了一个Web服务器在同一 时间支持许多不同的域名。有了这个数不,Web服务器就可以区别客户试图连接 哪一个Web服务器,并对每个客户响应不同的内容,这就是HTTP1.0到1.1版本 的主要变化。User-Agent首部描述了提出请求的Web浏览器及客户机器。接下 来是一系列的Accpet首部,包括Accept(接受)、Accept-Language(接受语言)、 Accept-Encoding(接受编码)、Accept-Charset(接受字符集)。它们告诉Web

Http协议详解

引言 HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展。目前在WWW中使用的是HTTP/1.0的第六版,HTTP/1.1的规范化工作正在进行之中,而且HTTP-NG(Next Generation of HTTP)的建议已经提出。H TTP协议的主要特点可概括如下:1.支持客户/服务器模式。2.简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。3.灵活:HTTP 允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。4.无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。5.无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。 一、HTTP协议详解之URL篇 http(超文本传输协议)是一个基于请求与响应模式的、无状态的、应用层的协议,常基于TCP的连接方式,HTTP1.1版本中给出一种

持续连接的机制,绝大多数的Web开发,都是构建在HTTP协议之上的Web应用。 HTTP URL (URL是一种特殊类型的URI,包含了用于查找某个资源的足够的信息)的格式如下:h ttp://host[":"port][abs_path]http表示要通过HTTP协议来定位网络资源;host表示合法的Internet主机域名或者IP地址;port指定一个端口号,为空则使用缺省端口80;abs_path 指定请求资源的URI;如果URL中没有给出abs_path,那么当它作为请求URI时,必须以“/”的形式给出,通常这个工作浏览器自动帮我们完成。e g:1、输入:https://www.wendangku.net/doc/f011895316.html,浏览器自动转换成:https://www.wendangku.net/doc/f011895316.html,/2、http:192.168.0.116:8080/index.jsp 二、HTTP协议详解之请求篇 http请求由三部分组成,分别是:请求行、消息报头、请求正文1、请求行以一个方法符号开头,以空格分开,后面跟着请求的URI 和协议的版本,格式如下:Method Request-URI HTTP-Version CRLF 其中 Method表示请求方法;Request-URI是一个统一资源标识符;HTTP-Version表示请求的HTTP协议版本;CRLF表示回车和换行(除了作为结尾的CRLF外,不允许出现单独的CR或LF字符)。 请求方法(所有方法全为大写)有多种,各个方法的解释如下:GET 请求获取Request-URI所标识的资源P OST 在

HTTP请求报头详解

HTTP头字段包括4类: general-header ; request-header ; response-header ; entity-header . ********************************************************************* ********** General Header Fields ============================= general header是request、response都可用的, 但是不能用于entity. --Cache-Control --Connection --Date --Pragma --Trailer --Transfer-Encoding --Upgrade --Via --Warning ********************************************************************* ********** Request Header Fields ====================== request-header fields 允许客户端传递关于request和客户端的附加信息到服务端, --Accept --Accept-Charset --Accept-Encoding --Accept-Language --Authorization --Expect --From --Host --If-Match --If-Modified-Since --If-None-Match --If-Range --If-Unmodified-Since

教你利用HTTP host头攻击的技术

利用HTTP host 头攻击的技术 2014-04-10 我来说两句 作者:龙臣 收藏 我要投稿 from:https://www.wendangku.net/doc/f011895316.html,/2013/05/practical-http-host-header-at tacks.html 0x00 背景 一般通用web 程序是如果想知道网站域名不是一件简单的事情,如果用一个固 定的URI 来作为域名会有各种麻烦。开发人员一般是依赖HTTP Host header (比如 在php 里是_SERVER["HTTP_HOST"] ),而这个header 很多情况下是靠不住的。而 很多应用是直接把这个值不做html 编码便输出到了页面中,比如: ? 1 (Django, Gallery, others) 这样处理问题一般会很容易遭遇到两种常见的攻击:缓存污染和密码重置。缓 存污染是指攻击者通过控制一个缓存系统来将一个恶意站点的页面返回给用户。密 码重置这种攻击主要是因为发送给用户的内容是可以污染的,也就是说可以间接的 劫持邮件发送内容。 0x01 密码重置污染攻击 拿 Gallery 这个站来做例子。当我们进行密码重置的时候,网站会给我们发 送一个随机的key : ? 1 2 3 $user -> hash = random::hash() ; $message -> confirm_url = url::abs_site("password/do_reset?key=$user->hash") ;

实验三利用Ethereal分析HTTP协议

计算机网络实验报告年级:姓名:学号: 实验日期: 实验名称:实验三利用Ethereal分析HTTP协议 一、实验目的 1、利用抓包工具wireshark来分析http协议; 2、通过分析HTTP协议,探讨有关HTTP协议的以下几个方面: (1)、基本的GET /响应交互, (2)、HTTP的消息格式, (3)、获取较大的HTML文件, (4)、检索与嵌入HTML文件对象, (5)、和HTTP身份验证和安全性。 二、实验器材 1、接入Internet的计算机主机; 2、抓包工具wireshark和截图工具snagit。 三、实验内容 (一). The Basic HTTP GET/response interaction 1. Is your browser running HTTP version 1.0 or 1.1? What version of HTTP is theserver running? 答:我的浏览器上运行HTTP version 1.1如下图 2. What languages (if any) does your browser indicate that it can accept to theserver? 答:浏览器所能接受的语言为:简体中文accept language : zh -cn\r\n 截图如下:

3. What is the IP address of your computer? Of the https://www.wendangku.net/doc/f011895316.html, server? 答:本机IP地址:10.0.163.199,服务器IP地址:128.119.245.12 截图如下: 4. What is the status code returned from the server to your browser? 答:状态码及状态码200ok截图如下: 5. When was the HTML file that you are retrieving last modified at the server? 6. How many bytes of content are being returned to your browser? 7. By inspecting the raw data in the packet content window, do you see any headerswithin the data that are not displayed in the packet-listing window? If so, nameone. 答:没有。 (二). The HTTP CONDITIONAL GET/response interaction1 8. Inspect the contents of the first HTTP GET request from your browser to the server. Do you see an “IF-MODIFIED-SINCE” line in the HTTP GET? 答:没有看到。 9. Inspect the contents of the server response. Did the server explicitly return the contents of the file? How can you tell? 答:反回了,如下图所示 10. Now inspect the contents of the second HTTP GET request from your browser

实验六利用Wireshark分析协议HTTP

实验六利用W i r e s h a r k分析协议H T T P 一、实验目的 分析HTTP协议 二、实验环境 与因特网连接的计算机,操作系统为Windows,安装有Wireshark、IE等软件。 三、实验步骤 1、利用Wireshark俘获HTTP分组 (1)在进行跟踪之前,我们首先清空Web 浏览器的高速缓存来确保Web网页是从网络中获取的,而不是从高速缓冲中取得的。之后,还要在客户端清空DNS高速缓存,来确保Web服务器域名到IP地址的映射是从网络中请求。在WindowsXP机器上,可在命令提示行输入ipconfig/flushdns(清除DNS解析程序缓存)完成操作。 (2)启动Wireshark 分组俘获器。 (3)在Web 浏览器中输入:https://www.wendangku.net/doc/f011895316.html, (4)停止分组俘获。 图1.1 利用Wireshark俘获的HTTP分组 在URL https://www.wendangku.net/doc/f011895316.html,中,https://www.wendangku.net/doc/f011895316.html,是一个具体的web 服务器的域名。最前面有两个DNS分组。第一个分组是将域名https://www.wendangku.net/doc/f011895316.html,

转换成为对应的IP 地址的请求,第二个分组包含了转换的结果。这个转换是必要的,因为网络层协议——IP协议,是通过点分十进制来表示因特网主机的,而不是通过https://www.wendangku.net/doc/f011895316.html,这样的域名。当输入URL http://https://www.wendangku.net/doc/f011895316.html, 时,将要求Web服务器从主机https://www.wendangku.net/doc/f011895316.html,上请求数据,但首先Web浏览器必须确定这个主机的IP地址。 随着转换的完成,Web浏览器与Web服务器建立一个TCP连接。最后,Web 浏览器使用已建立好的TCP连接来发送请求“GET/HTTP/1.1”。这个分组描述了要求的行为(“GET”)及文件(只写“/”是因为我们没有指定额外的文件名),还有所用到的协议的版本(“HTTP/1.1”)。 2、HTTP GET/response交互 (1)在协议框中,选择“GET/HTTP/1.1” 所在的分组会看到这个基本请求行后跟随着一系列额外的请求首部。在首部后的“\r\n”表示一个回车和换行,以此将该首部与下一个首部隔开。 “Host”首部在HTTP1.1版本中是必须的,它描述了URL中机器的域名,本例中是https://www.wendangku.net/doc/f011895316.html,。这就允许了一个Web服务器在同一时间支持许多不同的域名。有了这个数不,Web服务器就可以区别客户试图连接哪一个Web服务器,并对每个客户响应不同的内容,这就是HTTP1.0到1.1版本的主要变化。 User-Agent首部描述了提出请求的Web浏览器及客户机器。 接下来是一系列的Accpet首部,包括Accept(接受)、Accept-Language (接受语言)、Accept-Encoding(接受编码)、Accept-Charset(接受字符集)。它们告诉Web服务器客户Web浏览器准备处理的数据类型。Web服务器可以将数据转变为不同的语言和格式。这些首部表明了客户的能力和偏好。 Keep-Alive及Connection首部描述了有关TCP连接的信息,通过此连接发送HTTP请求和响应。它表明在发送请求之后连接是否保持活动状态及保持多久。大多数HTTP1.1连接是持久的(persistent),意思是在每次请求后不关闭TCP 连接,而是保持该连接以接受从同一台服务器发来的多个请求。 (2)我们已经察看了由Web浏览器发送的请求,现在我们来观察Web服务器的回答。响应首先发送“HTTP/1.1 200 ok”,指明它开始使用HTTP1.1版本来发送网页。同样,在响应分组中,它后面也跟随着一些首部。最后,被请求的实际数据被发送。

超文本传输协议(HTTP)

《计算机网络实验》实验报告实验名称:超文本传输协议(HTTP) 年级: 2014级 专业:软件工程专业 班级: 2班 姓名:王香香 学号: 1425161018 成绩: 指导教师:卢正添 提交报告时间: 2017年 6月 3日

一、实验目的 1.掌握HTTP的报文格式 2.掌握HTTP的工作原理 3.掌握HTTP常用方法 二、实验环境 网络结构一 三、实验步骤与实验结果 练习一:页面访问 各主机打开协议分析器,进入相应的网络结构并验证网络拓扑的正确性,如果通过拓扑验证,关闭协议分析器继续进行实验,如果没有通过拓扑验证,请检查网络连接。 本练习将主机A和B作为一组,主机C和D作为一组,主机E和F作为一组。现仅以主机A、B所在组为例,其它组的操作参考主机A、B所在组的操作。 1. 主机A清空IE缓存。 2. 主机B启动协议分析器开始捕获数据,并设置过滤条件(提取HTTP协议)。 3. 主机A启动IE浏览器,在“地址”框中输入http://服务器的ip/experiment,并连接,服务器IP默认为172.16.0.253。

4. 主机B停止捕获数据,分析捕获到的数据,并回答以下问题: ●本练习使用HTTP协议的哪种方法?简述这种方法的作用。答:Get方法。客户要从服务器读取文档时使用。 ●根据本练习的报文内容,填写下表。

表13-3 实验结果 ●参考“会话分析”视图显示结果,绘制此次访问过程的报文交互图(包括TCP协议)。 ●简述TCP协议和HTTP协议之间的关系。 答:HTTP是基于TCP的应用层协议。 思考问题: 1.一个主页是否只有一个连接? 答:否。一个主页可能对应多个连接。 练习二:页面提交 本练习将主机A和B作为一组,主机C和D作为一组,主机E和F作为一组。现仅以主机A、B所在组为例,其它组的操作参考主机A、B所在组的操作。 1. 主机B启动协议分析器开始捕获数据,并设置过滤条件(提取HTTP协议)。 2. 主机A启动IE浏览器,在“地址”框中输入“http://服务器的ip/experiment/post.html”,并连接,服务器IP 默认为172.16.0.253。在返回页面中,填写“用户名”和“密码”,点击[确定]按钮。 3. 主机B停止捕获数据,分析捕获到的数据,并回答以下问题:

IIS的主机头值和HTTP头

IIS的主机头值和HTTP头 主机头是绑定域名,没有域名不用设置主机头,所谓的主机头的叫法起自IIS中对域名绑定的功能,一般的web服务器一个ip地址的80端口只能正确对应一个网站,处理一个域名的访问请求。而web服务器在不使用多个ip地址和端口的情况下,如果需要支持多个相对独立的网站就需要一种机制来分辨同一个ip地址上的不同网站的请求,这就出现了主机头绑定的方法。简单的说就是,将不同的网站空间对应不同的域名,以连接请求中的域名字段来分发和应答正确的对应空间的文件执行结果。举个例子来说,一台服务器ip地址为192.168.1.10,有两个域名和对应的空间在这台服务器上,使用的都是192.168.1.10的80端口来提供服务。如果只是简单的将两个域名A和B的域名记录解析到这个ip地址,那么web服务器在收到任何请求时反馈的都会是同一个网站的信息,这显然达不到要求。接下来我们使用主机头绑定域名A和B到他们对应的空间文件夹C和D。当含有域名A的web请求信息到达192.168.1.10时,web服务器将执行它对应的空间C中的首页文件,并返回给客户端,含有域名B的web请求信息同理,只不过解释的是空间D的文件。所以在使用主机头绑定功能后就不能使用ip地址访问其上的任何网站了,因为请求信息中不存在域名信息,所以会出错。 在IIS中有一个叫主机头的概念,我们基本都已经掌握,还有一个叫HTTP 头的概念,有的同学已经问我这个问题,其实HTTP头更多的涉及到软件上的东东。 最直观的HTTP头就是当我们在FROTPAGE或DREAMWEAVER中每次新建一个HTML页面后,在这个页面的代码都会有这样一行代码: 其实这就是一个HTTP头信息,HTML页面开头都会有类似的这样一行代码。 那么到底是么是HTTP头呢?HTTP头分为HTTP请求头和HTTP应答头。HTTP 请求头为HTTP客户在浏览服务器上的主页时,向服务器发送请求的时候必须指明请求类型。请求类型是指HTTP-GET或HTTP-POST,每个HTTP-GET和HTTP-POST 都由一系列HTTP请求头组成,这些请求头定义了客户端从服务器请求了什么,而响应则是由一系列HTTP应答头和应答数据组成,如果请求成功则返回应答。 我的理解:每次客户端通过IE向服务器请求访问一个页面时总是使用HTTP 的请求头发送GET类型或POST类型的HTTP请求头.服务器在发送应答时,发送的是HTTP应答请求。 请求头和应答具体有哪些标识,我们不详细讲了,自己看以下内容: HTTP请求头概述(HttpServletRequest) HTTP客户程序(例如浏览器),向服务器发送请求的时候必须指明请求类型(一般是GET或者POST)。如有必要,客户程序还可以选择发送其他的请求头。大多数请求头并不是必需的,但Content-Length除外。对于POST请求来说Content-Length必须出现。 下面是一些最常见的请求头

协议分析报告

《计算机网络技术及应用》课程论文 题目“腾讯新闻”应用协议分析报告 专业 学生姓名 学号 成绩

目录 1 概述 (1) 1.1 “腾讯新闻”应用软件介绍 (1) 1.2 分析环境 (2) 1.2.1 测试手机配置 (2) 1.2.2 应用软件版本 (2) 1.2.3 分析工具介绍 (3) 1.2.4 网络拓扑 (3) 2 应用软件结构分析 (4) 3 应用协议分析 (5) 3.1 启动(连接)过程分析 (5) 3.1.1 获取新闻各版块 (5) 3.1.2 获取首页新闻列表 (8) 3.2登录(注册)分析 (9) 3.2.1 登陆过程分析 (9) 3.2.2 获取用户评论信息 (10) 3.3 切换版块功能分析 (11) 3.4 读取单条新闻功能分析 (14) 3.5 评论功能分析 (17) 3.5.1 查看评论 (17) 3.5.1发表评论 (22) 4 分析总结 (27)

1 概述 1.1 “腾讯新闻”应用软件介绍 腾讯新闻客户端是基于IOS、Android平台的腾讯新闻服务,快速、客观、公正地提供新闻资讯的中文免费应用程序。凭借优异的用户体验引发用户大量下载,以王者之姿“秒”杀用户,带领移动资讯进入“秒”时代。是腾讯团队用心打造的一款丰富、及时的新闻应用,本着精炼、轻便的目标,为用户提供高效、优质的阅读体验。全球视野,聚焦中国,一朝在手,博览天下。 腾讯新闻功能如下: 1.每日新闻及时报道,洞察真相,领先一步 2.媒体订阅,全面接入优质媒体/微信自媒体,一处订阅,多处可看 3.云收藏,便捷收藏、随时访问、永久保存 4.视频、图片、直播,多媒体资讯,舒适体验,值得拥有 5.专题新闻,聚合报道重要新闻事件,了解事件全貌 6.离线下载智能启动,30秒下载1000条新闻,没有网络也有得看 7.横划手势切换2级栏目,单手操作更方便 8.三种阅读模式,2G/3G/4G/wifi环境顺畅浏览 9.腾讯微博、QQ空间、微信朋友圈、新浪微博、微信好友、手机QQ好友、邮件,随时与好友分享态度 腾讯新闻客户端自上线以来,以快速的推送速度、界面友好、内容专业原创、视频图片优势得到了用户普遍认可,用户数量、活跃度和口碑都在同类软件中名列前茅,一直保持着在App Store新闻软件排名前三位。在欧洲杯赛事和伦敦奥运期间,腾讯新闻客户端开创性的推出视频新闻和奥运专版举动,提高新闻客户端的竞争门槛,更是引发了行业强烈关注。。 腾讯新闻客户端的特色在于把新闻、视频、微博有机地结合了起来,为手机用户提供多形式、多产品精华内容聚合的快速阅读体验。同时拥有优秀的开发和运营团队、腾讯海量的品牌用户、良好的用户口碑以及强大的推广资源等优势腾讯还拥有数量庞大的无线互联网产品,可以互相推荐下载,并会第一时间接入王牌无线产品:微信,让用户能够在微信中分享腾讯新闻,这是其他应用所不具备的。 此外,腾讯新闻客户端具有强大的实时推送功能,7x24小时不间断更新。重大新闻瞬间推送到手机,随时随地掌握天下事。用户通过腾讯新闻客户端,3秒即可连接到世界新闻,重大事件发生时,腾讯新闻客户端版能够实现30秒实时推送新闻。300秒即可尽览每日资讯。通过速度可以让用户真切的感受到了新闻触达指尖的便捷性。

HTTP协议分析

攀枝花学院计算机网络工程实训报告 HTTP协议分析 学生姓名:杨玉刚 学生学号: 200710801075 院(系):计算机学院 年级专业: 07计本2版 指导教师:范胜波 二〇一〇年六月

攀枝花学院本科学生课程设计任务书

攀枝花学院计算机网络工程实训报告 摘要 HTTP(Hyper Text Transfer Protocol)是超文本传输协议的缩写,它用于传送WWW方式的数据,关于HTTP协议的详细内容请参考RFC2616。HTTP协议采用了请求/响应模型。客户端向服务器发送一个请求,请求头包含请求的方法、URI、协议版本、以及包含请求修饰符、客户信息和内容的类似于MIME的消息结构。服务器以一个状态行作为响应,相应的内容包括消息协议的版本,成功或者错误编码加上包含服务器信息、实体元信息以及可能的实体内容。 通常HTTP消息包括客户机向服务器的请求消息和服务器向客户机的响应消息。这两种类型的消息由一个起始行,一个或者多个头域,一个只是头域结束的空行和可选的消息体组成。HTTP的头域包括通用头,请求头,响应头和实体头四个部分。每个头域由一个域名,冒号(:)和域值三部分组成。域名是大小写无关的,域值前可以添加任何数量的空格符,头域可以被扩展为多行,在每行开始处,使用至少一个空格或制表符 关键词HTTP协议,客户端,服务器, HTTP的头域

攀枝花学院计算机网络实训报告 目录 摘要 (Ⅰ) 1 前言 (1) 1.1 http协议简述 (1) 2 需求分析 (2) 2.1 http协议通信过程 (2) 2.1.1 URL自动解析 (2) 2.1.2 获取IP,建立TCP连接 (2) 2.1.3客户端浏览器向服务器发出HTTP请求 (2) 2.1.4 Web服务器应答,并向浏览器发送数据 (2) 2.1.5 Web服务器关闭TCP连接 (3) 2.1 HTTP的头域 (3) 2.1.1通用头域 (3) 2.1.2请求消息 (4) 2.1.3响应消息 (5) 2.1.4实体信息 (6) 3 系统设计 (7) 3.1 HTTP Analyzer工具介绍 (8) 3.2分析访问浏览器和服务器通信的过程 (8) 4 系统分析 (12) 4.1 HTTP 请求消息 (12) 4.1 HTTP 响应消息 (13) 结论 (15) 参考文献 (16) 附录 (17)

Http各种请求头的备注

HTTP1.1 请求头:消息头来自黑马:方立勋老师的课件 Accept:text/html,image/* 告诉服务器,客户机支持的数据类型 Accept-Charset:ISO-8859-1 告诉服务器,客户机采用的编码 Accept-EnCoding:gzip,compress 告诉服务器,客户机支持的数据压缩格式 Accept-Language:en 客户机的语言环境 Host: 客户机告诉服务器,想访问的主机名 If-Modified-Since:客户机通过这个头告诉服务器,资源的缓存时间 Referer:https://www.wendangku.net/doc/f011895316.html,/1.jsp 客户机通过这个头告诉服务器;它是从哪个资源来访问服务器的(防盗链) User-Agent: 客户机告诉服务器,客户机的软件环境 Cookie: 客户机通过这个头可以向服务器带数据; 响应头: Location:这个头信息配合302状态码使用,用于告诉客户找谁;重定向; Server:告诉客户机服务器的类型 Content-Encoding: gzip 服务器通过这个头,告诉客户机服务器压缩数据的格式 Content-Length:告诉浏览器压缩数据格式的同时;告诉客户机压缩数据的长度;Content-Language: zh-cn回送给浏览器,告诉回送时的语言环境; Content-Type: text/html;charset=GB2312 服务器通过这个头, 告诉浏览器回送数据的类型;可以控制以哪种类型方式(参照tomcat|web.xml)打开送回的数据; Last-Modified:服务器通过这个头,告诉浏览器当前资源缓存时间; Refresh:3;url=https://www.wendangku.net/doc/f011895316.html, 服务器通过这个头,告诉浏览器隔多长时间刷新一次,也可以刷新到指定的页面(单位时间:秒) Content-Disposition:attachment;filename=aa.zip 服务器通过这个头,告诉浏览器以下载方式打开数据 Transfer-Encoding:chunked 服务器通过这个头,告诉浏览器数据的传送格式是以chunked ETag:缓存相关的头;比其他的缓存,可以实现实时更新; Expires:与缓存相关;服务器通过这个头,告诉浏览器吧回送的资源缓存多长时间;-1或0,表示不缓存; Cache-Control:no-cache Pragma:no-cache 服务器通过以上两个头,也是控制浏览器不要缓存数据; 因为市面上很多浏览器支持的控制缓存数据不一致;通过以上三个缓存头就可以控制所有浏览器不要缓存数据了; Http请求头字段: Range 头指示服务器只传送一部分web资源。这个头可以实现断点续传功能。有三种格式设置要传输的字节范围 Range: bytes=1000-2000 传输范围从1000到2000字节 Range:byetes=1000- 传输web资源中的第1000个字节以后的所有内容 Range: bytes=1000 传输最后1000个字节 http响应消息头字段:

HTTP协议解析

文章来源:网络转载点击数:1148 更新时间:2009-9-14 10:35:27 字体:[大中小] 收藏到: HTTP协议详解 掌握HTTP虽然不是必须的,但是如果你知道它的工作原理,那么在学习JSP开发中的某些知识就可以易如反掌了。 一,HTTP协议详解之URL篇 http(超文本传输协议)是一个基于请求与响应模式的、无状态的、应用层的协议,常基于TCP的连接方式,HTTP1.1版本中给出一种持续连接的机制,绝大多数的Web开发,都是构建在HTTP协议之上的Web应用。 HTTP URL (URL是一种特殊类型的URI,包含了用于查找某个资源的足够的信息)的格式如下:http://host[":"port][abs_path] http 表示要通过HTTP协议来定位网络资源;host表示合法的Internet主机域名或者IP地址;port 指定一个端口号,为空则使用缺省端口80;abs_path指定请求资源的URI;如果URL中没有给出abs_path,那么当它作为请求URI时,必须以“/”的形式给出,通常这个工作浏览器自动帮我们完成。eg: 1、输入:https://www.wendangku.net/doc/f011895316.html, 浏览器自动转换成:https://www.wendangku.net/doc/f011895316.html,/ 2、http:192.168.0.116:8080/index.jsp 二、HTTP协议详解之请求篇 http请求由三部分组成,分别是:请求行、消息报头、请求正文 1、请求行以一个方法符号开头,以空格分开,后面跟着请求的URI和协议的版本,格式如下:Method Request-URI HTTP-Version CRLF 其中Method表示请求方法;Request-URI是一个统一资源标识符;HTTP-Version表示请求的HTTP 协议版本;CRLF表示回车和换行(除了作为结尾的CRLF外,不允许出现单独的CR或LF字符)。请求方法(所有方法全为大写)有多种,各个方法的解释如下: GET 请求获取Request-URI所标识的资源 POST 在Request-URI所标识的资源后附加新的数据 HEAD 请求获取由Request-URI所标识的资源的响应消息报头 PUT 请求服务器存储一个资源,并用Request-URI作为其标识 DELETE 请求服务器删除Request-URI所标识的资源 TRACE 请求服务器回送收到的请求信息,主要用于测试或诊断 CONNECT 保留将来使用 OPTIONS 请求查询服务器的性能,或者查询与资源相关的选项和需求 应用举例: GET方法:在浏览器的地址栏中输入网址的方式访问网页时,浏览器采用GET方法向服务器获取资源,eg:GET /form.html HTTP/1.1 (CRLF) POST方法要求被请求服务器接受附在请求后面的数据,常用于提交表单。 eg:POST /reg.jsp HTTP/ (CRLF) Accept:image/gif,image/x-xbit,... (CRLF) ...

利用wireshark分析HTTP协议实验报告

用wireshark分析HTTP协议实验报告

利用wireshark分析HTTP协议实验报告 一、实验目的 分析HTTP协议。 二、实验环境 连接Internet的计算机,操作系统为windows8.1; Wireshark,版本为1.10.7; Google Chrome,版本为39.0.2171.65.m; 三、实验步骤 1.清空缓存 在进行跟踪之前,我们首先清空Web 浏览器的高速缓存来确保Web网页是从网络中获取的,而不是从高速缓冲中取得的。之后,还要在客户端清空DNS 高速缓存,来确保Web服务器域名到IP地址的映射是从网络中请求。 2.启动wireshare 3.开始俘获 1)在菜单中选择capture-options,选择网络,打开start。如下图:

2)在浏览器地址栏中输入https://www.wendangku.net/doc/f011895316.html,,然后结束俘获,得到如下结果: 3)在过滤器中选择HTTP,点击apply,得到如下结果:

在菜单中选择file-save,保存结果,以便分析。(结果另附) 四、分析数据 在协议框中选择“GET/HTTP/1.1”所在的分组会看到这个基本请求行后跟随 着一系列额外的请求首部。在首部后的“\r\n”表示一个回车和换行,以此将该 首部与下一个首部隔开。“Host”首部在HTTP1.1版本中是必须的,它描述了URL 中机器的域名,本实验中式https://www.wendangku.net/doc/f011895316.html,。这就允许了一个Web服务器在同一 时间支持许多不同的域名。有了这个数不,Web服务器就可以区别客户试图连接 哪一个Web服务器,并对每个客户响应不同的内容,这就是HTTP1.0到1.1版本 的主要变化。User-Agent首部描述了提出请求的Web浏览器及客户机器。接下 来是一系列的Accpet首部,包括Accept(接受)、Accept-Language(接受语言)、 Accept-Encoding(接受编码)、Accept-Charset(接受字符集)。它们告诉Web

HTTP协议报头信息详细讲解

对HTTP协议的头信息详解 HTTP(HyperTextTransferProtocol)是超文本传输协议的缩写,它用于传送WWW方式的数据,关于HTTP 协议的详细容请参考RFC2616。HTTP协议采用了请求/响应模型。客户端向服务器发送一个请求,请求头包含请求的方法、URI、协议版本、以及包含请求修饰符、客户信息和容的类似于MIME的消息结构。服务器以一个状态行作为响应,相应的容包括消息协议的版本,成功或者错误编码加上包含服务器信息、实体元信息以及可能的实体容。 通常HTTP消息包括客户机向服务器的请求消息和服务器向客户机的响应消息。这两种类型的消息由一个起始行,一个或者多个头域,一个只是头域结束的空行和可选的消息体组成。HTTP的头域包括通用头,请求头,响应头和实体头四个部分。每个头域由一个域名,冒号(:)和域值三部分组成。域名是大小写无关的,域值前可以添加任何数量的空格符,头域可以被扩展为多行,在每行开始处,使用至少一个空格或制表符。 通用头域 通用头域包含请求和响应消息都支持的头域,通用头域包含Cache-Control、Connection、Date、Pragma、Transfer-Encoding、Upgrade、Via。对通用头域的扩展要求通讯双方都支持此扩展,如果存在不支持的通用头域,一般将会作为实体头域处理。下面简单介绍几个在UPnP消息中使用的通用头域。 Cache-Control头域 Cache -Control指定请求和响应遵循的缓存机制。在请求消息或响应消息中设置Cache-Control并不会修改另一个消息处理过程中的缓存处理过程。请求时的缓存指令包括no-cache、no-store、max-age、 max-stale、min-fresh、only-if-cached,响应消息中的指令包括public、private、no-cache、no- store、no-transform、must-revalidate、proxy-revalidate、max-age。各个消息中的指令含义如下: Public指示响应可被任何缓存区缓存。 Private指示对于单个用户的整个或部分响应消息,不能被共享缓存处理。这允许服务器仅仅描述当用户的部分响应消息,此响应消息对于其他用户的请求无效。 no-cache指示请求或响应消息不能缓存 no-store用于防止重要的信息被无意的发布。在请求消息中发送将使得请求和响应消息都不使用缓存。 max-age指示客户机可以接收生存期不大于指定时间(以秒为单位)的响应。 min-fresh指示客户机可以接收响应时间小于当前时间加上指定时间的响应。 max-stale指示客户机可以接收超出超时期间的响应消息。如果指定max-stale消息的值,那么客户机可以接收超出超时期指定值之的响应消息。 Date头域

相关文档