http协议精华

http协议学习系列

1. 基础概念篇1.1 介绍

HTTP是Hyper Text Transfer Protocol(超文本传输协议)的缩写。它的发展是万维网协会(World Wide Web Consortium)和Internet工作小组IETF(Internet Engineering Task Force)合作的结果,(他们)最终发布了一系列的RFC,RFC 1945定义了HTTP/1.0版本。其中最著名的就是RFC 2616。RFC 2616定义了今天普遍使用的一个版本——HTTP 1.1。

HTTP协议(HyperText Transfer Protocol,超文本传输协议)是用于从WWW服务器传输超文本到本地浏览器的传送协议。它可以使浏览器更加高效,使网络传输减少。它不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分,以及哪部分内容首先显示(如文本先于图形)等。

HTTP是一个应用层协议,由请求和响应构成,是一个标准的客户端服务器模型。HTTP是一个无状态的协议。

1.2 在TCP/IP协议栈中的位置

HTTP协议通常承载于TCP协议之上,有时也承载于TLS或SSL协议层之上,这个时候,就成了我们常说的HTTPS。如下图所示:

默认HTTP的端口号为80,HTTPS的端口号为443。

1.3 HTTP的请求响应模型

HTTP协议永远都是客户端发起请求,服务器回送响应。见下图:

这样就限制了使用HTTP协议,无法实现在客户端没有发起请求的时候,服务器将消息推送给客户端。

HTTP协议是一个无状态的协议,同一个客户端的这次请求和上次请求是没有对应关系。

1.4 工作流程

一次HTTP操作称为一个事务,其工作过程可分为四步:

1)首先客户机与服务器需要建立连接。只要单击某个超级链接,HTTP的工作开始。

2)建立连接后,客户机发送一个请求给服务器,请求方式的格式为:统一资源标识符(URL)、协议版本号,后边是MIME信息包括请求修饰符、客户机信息和可能的内容。

3)服务器接到请求后,给予相应的响应信息,其格式为一个状态行,包括信息的协议版本号、一个成功或错误的代码,后边是MIME信息包括服务器信息、实体信息和可能的内容。

4)客户端接收服务器所返回的信息通过浏览器显示在用户的显示屏上,然后客户机与服务器断开连接。

如果在以上过程中的某一步出现错误,那么产生错误的信息将返回到客户端,有显示屏输出。对于用户来说,这些过程是由HTTP自己完成的,用户只要用鼠标点击,等待信息显示就可以了。

1.5 使用Wireshark抓TCP、http包

打开Wireshark,选择工具栏上的“Capture”->“Options”,界面选择如图1所示:

图1 设置Capture选项

一般读者只需要选择最上边的下拉框,选择合适的Device,而后点击“Capture Filter”,此处选择的是“HTTP TCP port(80)”,选择后点击上图的“Start”开始抓包。

图2 选择Capture Filter

例如在浏览器中打开https://www.360docs.net/doc/4e12296815.html,/,抓包如图3所示:

图3 抓包

在上图中,可清晰的看到客户端浏览器(ip为192.168.2.33)与服务器的交互过程:

1)No1:浏览器(192.168.2.33)向服务器(220.181.50.118)发出连接请求。此为TCP三次握手第一步,此时从图中可以看出,为SYN,seq:X (x=0)

2)No2:服务器(220.181.50.118)回应了浏览器(192.168.2.33)的请求,并要求确认,此时为:SYN,ACK,此时seq:y(y为0),ACK:x+1(为1)。此为三次握手的第二步;

3)No3:浏览器(192.168.2.33)回应了服务器(220.181.50.118)的确认,连接成功。为:ACK,此时seq:x+1(为1),ACK:y+1(为1)。此为三次握手的第三步;

4)No4:浏览器(192.168.2.33)发出一个页面HTTP请求;

5)No5:服务器(220.181.50.118)确认;

6)No6:服务器(220.181.50.118)发送数据;

7)No7:客户端浏览器(192.168.2.33)确认;

8)No14:客户端(192.168.2.33)发出一个图片HTTP请求;

9)No15:服务器(220.181.50.118)发送状态响应码200 OK

……

1.6 头域

每个头域由一个域名,冒号(:)和域值三部分组成。域名是大小写无关的,域值前可以添加任何数量的空格符,头域可以被扩展为多行,在每行开始处,使用至少一个空格或制表符。

在抓包的图中,No14点开可看到如图4所示:

图4 http请求消息

回应的消息如图5所示:

图5 http状态响应信息

1.6.1 host头域

Host头域指定请求资源的Intenet主机和端口号,必须表示请求url的原始服务器或网关的位置。HTTP/1.1请求必须包含主机头域,否则系统会以400状态码返回。

图5中host那行为:

1.6.2 Referer头域

Referer头域允许客户端指定请求uri的源资源地址,这可以允许服务器生成回退链表,可用来登陆、优化cache等。他也允许废除的或错误的连接由于维护的目的被追踪。如果请求的uri没有自己的uri地址,Referer不能被发送。如果指定的是部分uri地址,则此地址应该是一个相对地址。

在图4中,Referer行的内容为:

1.6.3 User-Agent头域

User-Agent头域的内容包含发出请求的用户信息。

在图4中,User-Agent行的内容为:

1.6.4 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。

在图5中的该头域为:

1.6.5 Date头域

Date头域表示消息发送的时间,时间的描述格式由rfc822定义。例如,Date:Mon,31Dec200104:25:57GMT。Date描述的时间表示世界标准时,换算成本地时间,需要知道用户所在的时区。

图5中,该头域如下图所示:

1.7 HTTP的几个重要概念

1.7.1连接:Connection

一个传输层的实际环流,它是建立在两个相互通讯的应用程序之间。

在http1.1,request和reponse头中都有可能出现一个connection的头,此header的含义是当client和server通信时对于长链接如何进行处理。

在http1.1中,client和server都是默认对方支持长链接的,如果client使用http1.1协议,但又不希望使用长链接,则需要在header中指明connection的值为close;如果server方也不想支持长链接,则在response中也需要明确说明connection的值为close。不论request还是response的header中包含了值为close的connection,都表明当前正在使用的tcp链接在当天请求处理完毕后会被断掉。以后client再进行新的请求时就必须创建新的tcp链接了。

1.7.2消息:Message

HTTP通讯的基本单位,包括一个结构化的八元组序列并通过连接传输。

1.7.3请求:Request

一个从客户端到服务器的请求信息包括应用于资源的方法、资源的标识符和协议的版本号。

1.7.4响应:Response

一个从服务器返回的信息包括HTTP协议的版本号、请求的状态(例如“成功”或“没找到”)和文档的MIME类型。

1.7.5资源:Resource

由URI标识的网络数据对象或服务。

1.7.6实体:Entity

数据资源或来自服务资源的回映的一种特殊表示方法,它可能被包围在一个请求或响应信息中。一个实体包括实体头信息和实体的本身内容。

1.7.7客户机:Client

一个为发送请求目的而建立连接的应用程序。

1.7.8用户代理:UserAgent

初始化一个请求的客户机。它们是浏览器、编辑器或其它用户工具。

1.7.9服务器:Server

一个接受连接并对请求返回信息的应用程序。

1.7.10源服务器:Originserver

是一个给定资源可以在其上驻留或被创建的服务器。

1.7.11代理:Proxy

一个中间程序,它可以充当一个服务器,也可以充当一个客户机,为其它客户机建立请求。请求是通过可能的翻译在内部或经过传递到其它的服务器中。一个代理在发送请求信息之前,必须解释并且如果可能重写它。

代理经常作为通过防火墙的客户机端的门户,代理还可以作为一个帮助应用来通过协议处理没有被用户代理完成的请求。

1.7.12网关:Gateway

一个作为其它服务器中间媒介的服务器。与代理不同的是,网关接受请求就好象对被请求的资源来说它就是源服务器;发出请求的客户机并没有意识到它在同网关打交道。

网关经常作为通过防火墙的服务器端的门户,网关还可以作为一个协议翻译器以便存取那些存储在非HTTP系统中的资源。

1.7.13通道:Tunnel

是作为两个连接中继的中介程序。一旦激活,通道便被认为不属于HTTP通讯,尽管通道可能是被一个HTTP请求初始化的。当被中继的连接两端关闭时,通道便消失。当一个门户(Portal)必须存在或中介(Intermediary)不能解释中继的通讯时通道被经常使用。

1.7.14缓存:Cache

反应信息的局域存储。

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协议

Http协议 什么是HTTP协议 客户端连上web服务器后,若想获得web服务器中的某个web资源,需遵守一定的通讯格式,HTTP协议用于定义客户端与web服务器通迅的格式。 使用telnet程序连上web服务器,并使用HTTP协议获取某个页面,以快速了解HTTP协议的作用。 安装IE浏览器插件HttpWatch,查看IE浏览器通过HTTP协议获取某个页面。HTTP协议简介 HTTP是hypertext transfer protocol(超文本传输协议)的简写,它是TCP/IP协议的一个应用层协议,用于定义WEB浏览器与WEB服务器之间交换数据的过程。 HTTP协议是学习JavaWEB开发的基石,不深入了解HTTP协议,就不能说掌握了WEB开发,更无法管理和维护一些复杂的WEB站点。 HTTP协议的版本:HTTP/1.0、HTTP/1.1 HTTP1.0和HTTP1.1的区别 在HTTP1.0协议中,客户端与web服务器建立连接后,只能获得一个web资源。HTTP1.1协议,允许客户端与web服务器建立连接后,在一个连接上获取多个web资源。 使用telnet举例说明。 一个好多同学搞不清楚的问题: 一个web页面中,使用img标签引用了三幅图片,当客户端访问服务器中的这个web页面时,客户端总共会访问几次服务器,即向服务器发送了几次HTTP 请求。 HTTP请求 客户端连上服务器后,向服务器请求某个web资源,称之为客户端向服务器发送了一个HTTP请求。一个完整的HTTP请求包括如下内容: 一个请求行、若干消息头、以及实体内容,其中的一些消息头和实体内容都是可选的,消息头和实体内容之间要用空行隔开。如下所示: 举例: HTTP请求的细节——请求行 请求行中的GET称之为请求方式,请求方式有: POST、GET、HEAD、OPTIONS、DELETE、TRACE、PUT 常用的有:POST、GET 不管POST或GET,都用于向服务器请求某个WEB资源,这两种方式的区别主要表现在数据传递上,客户端通过这两种方式都可以带一些数据给服务器:

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相同。请求消息请求消息的第一行为下面的格式:

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.360docs.net/doc/4e12296815.html,浏览器自动转换成:https://www.360docs.net/doc/4e12296815.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协议报文格式 HTTP协议(Hypertext Transfer Protocol――超文本传输协议)浏览器端(客户端)向WEB 服务器端访问页面的过程和HTTP协议报文的格式。 基于HTTP协议的客户机访问包括4个过程,分别是建立TCP套接字连接、发送HTTP请求报文、接收HTTP应答报文和关闭TCP套接字连接: 1. 创建TCP套接字连接 客户端与WEB服务器创建TCP套接字连接,其中WEB端服务器的地址可以通过域名解析确定,WEB端的套接字侦听端口一般是80。 2. 发送HTTP请求报文 客户端向WEB服务端发送请求报文,HTTP协议的请求报文格式为: 请求消息= 请求行(实体头信息)CRLF[实体内容] 请求行= 方法URL HTTP版本号CRLF 方法= GET|HEAD|POST|扩展方法 URL = 协议名称+宿主名+目录与文件名 其中"CRLF"表示回车换行。 "请求行"中的"方法"描述了对指定资源执行的动作,常用的方法"GET"、"HEAD"和"POST"等3种,它们的含义如表15-8所示: 请求报文 一个HTTP请求报文由请求行(request line)、请求头部(header)、空行和请求数据4个部分组成,下图给出了请求报文的一般格式。 (1)请求行 请求行由请求方法字段、URL字段和HTTP协议版本字段3个字段组成,它们用空格分隔。例如,GET /index.html HTTP/1.1。 HTTP协议的请求方法有GET、POST、HEAD、PUT、DELETE、OPTIONS、TRACE、CONNECT。这里介绍最常用的GET方法和POST方法。 GET:当客户端要从服务器中读取文档时,使用GET方法。GET方法要求服务器将URL定位的资源放在响应报文的数据部分,回送给客户端。使用GET方法时,请求参数和对应的值附加在URL后面,利用一个问号(“?”)代表URL的结尾 与请求参数的开始,传递参数长度受限制。例如,/index.jsp?id=100&op=bind。POST:当客户端给服务器提供信息较多时可以使用POST方法。POST方法将请求参数封装在HTTP请求数据中,以名称/值的形式出现,可以传输大量数据。 表15-8 HTTP请求方法

必须掌握的http协议知识

HTTP协议 HTTP协议(HyperText Transfer Protocol,超文本传输协议)是因特网上应用最为广泛的一种网络传输协议。所有的www文件都必须遵守这个标准。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。是用于从万维网(Wide Web )服务器传输超文本到本地浏览器的传送协议。 HTTP/0.9 已过时。只接受GET 一种请求方法,没有在通讯中指定版本号,且不支持请求头。由于该版本不支持POST 方法,所以客户端无法向服务器传递太多信息。 HTTP/1.0 这是第一个在通讯中指定版本号的HTTP 协议版本,至今仍被广泛采用,特别是在代理服务器中。HTTP/1.1 当前版本。持久连接被默认采用,并能很好地配合代理服务器工作。还支持以管道方式同时发送多个请求,以便降低线路负载,提高传输速度。 HTTP/1.1相较于HTTP/1.0 协议的区别主要体现在: ?缓存处理 ?带宽优化及网络连接的使用 ?错误通知的管理 ?消息在网络中的发送 ?互联网地址的维护 ?安全性及完整性

HTTP 工作原理 HTTP协议工作于客户端-服务端架构为上。浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有请求。 Web服务器有:Apache服务器,IIS服务器(Internet Information Services)等。 Web服务器根据接收到的请求后,向客户端发送响应信息。 HTTP默认端口号为80,但是你也可以改为8080或者其他端口。 HTTP三点注意事项: ?HTTP是无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。 ?HTTP是媒体独立的:这意味着,只要客户端和服务器知道如何处理的数据内容,任何类型的数据都可以通过HTTP发送。客户端以及服务器指定使用适合的MIME-type内容类型。 ?HTTP是无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。 以下图表展示了HTTP协议通信流程:

利用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.360docs.net/doc/4e12296815.html,,然后结束俘获,得到如下结果: 3)在过滤器中选择HTTP,点击apply,得到如下结果:

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

实验六利用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.360docs.net/doc/4e12296815.html, (4)停止分组俘获。 图1.1 利用Wireshark俘获的HTTP分组 在URL https://www.360docs.net/doc/4e12296815.html,中,https://www.360docs.net/doc/4e12296815.html,是一个具体的web 服务器的域名。最前面有两个DNS分组。第一个分组是将域名https://www.360docs.net/doc/4e12296815.html,

转换成为对应的IP 地址的请求,第二个分组包含了转换的结果。这个转换是必要的,因为网络层协议——IP协议,是通过点分十进制来表示因特网主机的,而不是通过https://www.360docs.net/doc/4e12296815.html,这样的域名。当输入URL http://https://www.360docs.net/doc/4e12296815.html, 时,将要求Web服务器从主机https://www.360docs.net/doc/4e12296815.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.360docs.net/doc/4e12296815.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版本来发送网页。同样,在响应分组中,它后面也跟随着一些首部。最后,被请求的实际数据被发送。

完整word版Http协议解说

Http协议:超文本传输协议 浏览器与服务端之间传输数据的协议,底层的传输协议为TCP。Http则为应用层协议,负责定义传输数据的格式 HTTP协议分为1.0与1.1两个版本。现在常用为1.1版本。 协议规定客户端与服务端通讯方式为:一次请求一次响应,即:客户端 发起请求,服务端接收到请求后向客户端发送响应。服务端不会主动发送内容 给客户端。采取“一问一答”的形式 HTTP 请求和响应分别定义了个格式。并且,无论是请求还是响应中发送的字符(不含正文部分内容)都只能符合ISO8859-1编码字符(如:数字,字母,符号). 像中文等其它字符都需要经过处理后才可以发送。 HTTP请求格式: 一个HTTP请求分为三部分组成:请求行,消息头,消息正文 1:<请求行> :

请求行分为三部分 请求方法资源路径协议(CRLF) method(请求方法)url(资源路径) protocol(CRLF) 例如: GET /index.html HTTP/1.1(CRLF) 请求行以CRLF结束(回车加换行) CR:回车符,asc编码中对应数字13 LF:换行符,asc编码中对应数字10 2.<消息头> 消息头由若干行表示,每行表示一个具体的头信息,每个头信息式分为两部分: 消息头名字:消息头的值(CRLF) name: value(CRLF) 每个消息头都以CRLF结尾。 最后一个消息头结尾处会有两个CRLF,第一个表示最后一个消息头结束, 第二个表示消息头(整个)部分结束。 例如: Host: www.localhost:8080(CRLF) Connection: keep-alive(CRLF)

1、Http协议

Http协议 一、Http概述 二、http协议特点: 1支持客户/服务器模式(B/S) 通常这里所指的客户端是浏览器 2简单快速 客户向服务器请求服务时,只需传送请求方法和路径,请求方法常用的有get/head/post。每种方法规定了客户与服务器联系的不同类型。后面会作详解说明。 3灵活 http协议允许传输任意类型的数据对象,正在传输的类型由context-type加以标记。通过在head中定义meta标签指定。 4无连接: 无连接的含义是指限制每次连接只处理一个请求服务器修理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。 5无状态: http协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传递的数据量增大。

另一方面,在服务器不需要先前信息时他的应答就较快。 三、Http协议url: 就像每家每户都有一个门牌地址一样,每个网页也都有一个Internet地址。当你在浏览器的地址框中输入一个URL或是单击一个超级链接时,URL就确定了要浏览的地址。浏览器通过超文本传输协议(HTTP),将Web服务器上站点的网页代码提取出来,并翻译成漂亮的网页。 URL由三部分组成:资源类型、存放资源的主机域名、资源文件名。 一个常用的url地址如下:https://www.360docs.net/doc/4e12296815.html,:80/server/index.html下面我们对这个url进行详细说明. 1、[http://]这一部分是说明这个请求是基于http协议的,这里请大家注意,我们日常使用的浏览器默认都是基于http协议的所以这一部分内容我们可以省略,浏览器会自动处理。 2、https://www.360docs.net/doc/4e12296815.html,这部分内容表示我们请求的http服务器的域名,这个域名最终会解析为一个ip地址,指向网络中的一台http服务器计算机 3、[:80]:这里指的是端口号,必须是一个整数,http协议的默认端口号是80,如果服务器部署的端口号是80那么这里可以省略,web浏览器会自动加上80端口。 如果说我们服务器地址是我们的门牌号,那么端口号就可以说是房间号。 4、server:表示服务器上的一个目录,也可以说是在服务器上部署的一个应用程序。 5、index.html:服务器最终会返回给客户端的结果文件,这里是一个html网页. 四、Http请求协议 请求协议的格式:

实验三利用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.360docs.net/doc/4e12296815.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

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协议的头信息详解

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

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.360docs.net/doc/4e12296815.html, 浏览器自动转换成:https://www.360docs.net/doc/4e12296815.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) ...

Http协议学习总结

1.HTTP规定在HTTP客户与HTTP服务器之间的每次交互,都由一个ASCII码串构成的请求和一个“类MIME(MIME—like)”的相应组成。HTTP报文通常都是用TCP连接 2.从层次的角度看,HTTP是面向事务的应用层协议。所谓事务,就是指一系列的信息交换,而这一系列的信息交换是一个不可分割的整体,即要么所有信息交换都完成,要么一次交换都不进行。 3.HTTP协议本身是无连接的,虽然HTTP使用了TCP连接,但通信的双方在交换HTTP报文前不需要建立HTTP连接。 4.HTTP协议时无状态的,也就是说,同一个客户第二次访问同一个服务器上的页面时,服务器的响应与第一次被访问时的相同。 5.万维网客户把HTTP请求报文作为TCP连接三次握手的第三个报文的数据发送给万维网服务器,服务器收到HTTP请求报文后,就把所请求的文档作为响应报文返回给客户。 6.HTTP/1.0的主要缺点,是每请求一个文档就要有两倍RTT的开销。HTTP/1.1使用持续连接。所谓持续连接,就是万维网服务器在发送响应后仍然在一段时间内保持这条连接,使同一个客户(浏览器)和该服务器可以继续在这条连接上传送后续的HTTP请求报文和响应报文,这并不局限于传送同一个页面上链接的文档,而是只要这些文档都在同一个服务器上就行。 7.HTTP/1.1协议的持续连接有两种方式,即非流水线方式和流水线方式。非流水线方式的特点是,客户在收到前一个响应后才能发出下一个请求;流水线方式的特点是,客户在收到HTTP的响应报文之前就能接着发送新的请求报文。 8.HTTP请求报文和响应报文都由三个部分组成:开始行、首部行、实体主题。开始行用于区别报文时响应报文还是请求报文,在请求报文中,开始行叫做请求行,而在响应报文中,开始行叫做状态行。 9.请求报文请求行只有三个内容:方法、请求资源的URL、HTTP 的版本。响应报文的状态行也包括三项内容:HTTP的版本、状态码、解释状态码的简单短语。 10.状态码都是三位数字的,分为5大类共33种,例如: 1xx表示通知信息的,如请求收到了或正在进行处理 2xx表示成功,如接受或知道了; 3xx表示重定向,如果完成请求,还必须采取进一步的行动;

http协议精华

http协议学习系列 1. 基础概念篇1.1 介绍 HTTP是Hyper Text Transfer Protocol(超文本传输协议)的缩写。它的发展是万维网协会(World Wide Web Consortium)和Internet工作小组IETF(Internet Engineering Task Force)合作的结果,(他们)最终发布了一系列的RFC,RFC 1945定义了HTTP/1.0版本。其中最著名的就是RFC 2616。RFC 2616定义了今天普遍使用的一个版本——HTTP 1.1。 HTTP协议(HyperText Transfer Protocol,超文本传输协议)是用于从WWW服务器传输超文本到本地浏览器的传送协议。它可以使浏览器更加高效,使网络传输减少。它不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分,以及哪部分内容首先显示(如文本先于图形)等。 HTTP是一个应用层协议,由请求和响应构成,是一个标准的客户端服务器模型。HTTP是一个无状态的协议。 1.2 在TCP/IP协议栈中的位置 HTTP协议通常承载于TCP协议之上,有时也承载于TLS或SSL协议层之上,这个时候,就成了我们常说的HTTPS。如下图所示: 默认HTTP的端口号为80,HTTPS的端口号为443。 1.3 HTTP的请求响应模型 HTTP协议永远都是客户端发起请求,服务器回送响应。见下图: 这样就限制了使用HTTP协议,无法实现在客户端没有发起请求的时候,服务器将消息推送给客户端。 HTTP协议是一个无状态的协议,同一个客户端的这次请求和上次请求是没有对应关系。 1.4 工作流程 一次HTTP操作称为一个事务,其工作过程可分为四步: 1)首先客户机与服务器需要建立连接。只要单击某个超级链接,HTTP的工作开始。 2)建立连接后,客户机发送一个请求给服务器,请求方式的格式为:统一资源标识符(URL)、协议版本号,后边是MIME信息包括请求修饰符、客户机信息和可能的内容。 3)服务器接到请求后,给予相应的响应信息,其格式为一个状态行,包括信息的协议版本号、一个成功或错误的代码,后边是MIME信息包括服务器信息、实体信息和可能的内容。 4)客户端接收服务器所返回的信息通过浏览器显示在用户的显示屏上,然后客户机与服务器断开连接。

HttpWatch HTTP协议分析指南(详解)

[原创]HttpWatch工具简介及使用技巧 一概述: HttpWatch强大的网页数据分析工具.集成在Internet Explorer工具栏.包括网页摘要.Cookies管理.缓存管理.消息头发送/接受.字符查询.POST 数据和目录管理功能.报告输出HttpWatch 是一款能够收集并显示页页深层信息的软件。它不用代理服务器或一些复杂的网络监控工具,就能够在显示网页同时显示网页请求和回应的日志信息。甚至可以显示浏览器缓存和IE之间的交换信息。集成在Internet Explorer工具栏。 二安装HttpWatch 略过^_^ 三基本功能介绍 启动Httpwatch 从IE的“查看”—“浏览器栏”—“HttpWatch”启动HttpWatch。如下图所示:

以下是HttpWatch程序界面 以下用登录我的邮箱https://www.360docs.net/doc/4e12296815.html,例子来展示Httpwatch: 点击“Record”后,在IE打开需要录制的网址,https://www.360docs.net/doc/4e12296815.html,,输入用户名,密码后完成登录操作

1.3.1 Overview(概要)表示选定某个信息显示其概要信息

如上图红框所示: URL:https://www.360docs.net/doc/4e12296815.html,/external/closea_d.js Result:200 请求的URL是https://www.360docs.net/doc/4e12296815.html,/external/closea_d.js ,返回的Htpp状态代码结果200,表示成功; Resync URL Browser requested refresh if changed - https://www.360docs.net/doc/4e12296815.html,/external/closea_d.js

相关文档
最新文档