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-ag e。各个消息中的指令含义如下:

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相同。

请求消息

请求消息的第一行为下面的格式:

MethodSPRequest-URISPHTTP-V ersionCRLFMethod表示对于Request-URI完成的方法,这个字段是大小写敏感的,包括OPTIONS、GET、HEAD、POST、PUT、DELETE、TRACE。方法GET和HEAD应该被所有的通用WEB服务器支持,其他所有方法的实现是可选的。GET方法取回由Request-URI 标识的信息。HEAD方法也是取回由Request-URI标识的信息,只是可以在响应时,不返回消息体。POST方法可以请求服务器接收包含在请求中的实体信息,可以用于提交表单,向新闻组、BBS、邮件群组和数据库发送消息。

SP表示空格。Request-URI遵循URI格式,在此字段为星号(*)时,说明请求并不用于某个特定的资源地址,而是用于服务器本身。HTTP-Version表示支持的HTTP版本,例如为HTTP/1.1。CRLF表示换行回车符。请求头域允许客户端向服务器传递关于请求或者关于客户机的附加信息。请求头域可能包含下列字段Accept、Accept-Charset、Accept-Encoding、Accept-Language、Authorization、From、Host、If-Modified-Since、If-Match、If-None-Match、If-Range、If-Rang e、If-Unmodified-Since、Max-Forwards、Proxy-Authorization、Range、Referer、User-Agent。对请求头域的扩展要求通讯双方都支持,如果存在不支持的请求头域,一般将会作为实体头域处理。

典型的请求消息:

GEThttp://download.microtool.de:80/somedata.exe

Host:download.microtool.de

Accept:*/*

Pragma:no-cache

Cache-Control:no-cache

Referer:http://download.microtool.de/

User-Agent:Mozilla/4.04[en](Win95;I;Nav)

Range:b ytes=554554-

上例第一行表示HTTP客户端(可能是浏览器、下载程序)通过GET方法获得指定URL下的文件。棕色的部分表示请求头域的信息,绿色的部分表示通用头部分。

Host头域

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

Referer头域

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

Range头域

Range头域可以请求实体的一个或者多个子范围。例如,

表示头500个字节:bytes=0-499

表示第二个500字节:bytes=500-999

表示最后500个字节:bytes=-500

表示500字节以后的范围:bytes=500-

第一个和最后一个字节:bytes=0-0,-1

同时指定几个范围:bytes=500-600,601-999

但是服务器可以忽略此请求头,如果无条件GET包含Range请求头,响应会以状态码206(PartialContent)返回而不是以200(OK)。

User-Agent头域

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

响应消息

响应消息的第一行为下面的格式:

HTTP-VersionSPStatus-CodeSPReason-PhraseCRLF

HTTP-Version表示支持的HTTP版本,例如为HTTP/1.1。Status-Code是一个三个数字的结果代码。Reason-Phrase给Status-Code提供一个简单的文本描述。Status-Code主要用于机器自动识别,Reason-Phrase主要用于帮助用户理解。Status-Code的第一个数字定义响应的类别,后两个数字没有分类的作用。第一个数字可能取5个不同的值:

1xx:信息响应类,表示接收到请求并且继续处理

2xx:处理成功响应类,表示动作被成功接收、理解和接受

3xx:重定向响应类,为了完成指定的动作,必须接受进一步处理

4xx:客户端错误,客户请求包含语法错误或者是不能正确执行

5xx:服务端错误,服务器不能正确执行一个正确的请求

响应头域允许服务器传递不能放在状态行的附加信息,这些域主要描述服务器的信息和Request-URI进一步的信息。响应头域包含Age、Location、Proxy-Authenticate、Public、Retry-After、Server、Vary、Warning、WWW-Authenticate。对响应头域的扩展要求通讯双方都支持,如果存在不支持

的响应头域,一般将会作为实体头域处理。

典型的响应消息:

HTTP/1.0200OK

Date:Mon,31Dec200104:25:57GMT

Server:Apache/1.3.14(Unix)

Content-type:text/html

Last-modified:Tue,17Apr200106:46:28GMT

Etag:"a030f020ac7c01:1e9f"

Content-length:39725426

Content-range:b ytes554554-40279979/40279980

上例第一行表示HTTP服务端响应一个GET方法。棕色的部分表示响应头域的信息,绿色的部分表示通用头部分,红色的部分表示实体头域的信息。

Location响应头

Location响应头用于重定向接收者到一个新URI地址。

Server响应头

Server响应头包含处理请求的原始服务器的软件信息。此域能包含多个产品标识和注释,产品标识一般按照重要性排序。

实体

请求消息和响应消息都可以包含实体信息,实体信息一般由实体头域和实体组成。实体头域包含关于实体的原信息,实体头包括Allow、Content-Base、Content-Encoding、Content-Language、Content-Length、Content-Location、Content-MD5、Content-Range、Content-Type、Etag、Expires、Last-Modified、extension-header。extension-header允许客户端定义新的实体头,但是这些域可能无法未接受方识别。实体可以是一个经过编码的字节流,它的编码方式由Content-Encoding或Content-Type定义,它的长度由Content-Length或Content-Range定义。

Content-Type实体头

Content-Type实体头用于向接收方指示实体的介质类型,指定HEAD方法送到接收方的实体介质类型,或GET方法发送的请求介质类型Content-Range 实体头

Content-Range实体头用于指定整个实体中的一部分的插入位置,他也指示了整个实体的长度。在服务器向客户返回一个部分响应,它必须描述响应覆盖的范围和整个实体长度。一般格式:

Content-Range:byt es-unitSPfirst-byte-pos-last-byte-pos/entity-legth

例如,传送头500个字节次字段的形式:Content-Range:bytes0-499/1234如果一个http消息包含此节(例如,对范围请求的响应或对一系列范围的重叠请求),Content-Range表示传送的范围,Content-Length表示实际传送的字节数。

Last-modified实体头

Last-modified实体头指定服务器上保存内容的最后修订时间。

==============

HTTP头字段包括4类:

general-header ;

reques t-header ;

res ponse-header ;

entity-header .

*******************************************************************************

General Header Fields

=============================

general header是request、res pons e都可用的, 但是不能用于entity.

--C ache-Control

--C onnection

--D ate

--Pragma

--Trailer

--Transfer-Enc oding

--U pgrade

--Via

*******************************************************************************

Request Header Fields

======================

request-header fiel ds 允许客户端传递关于request和客户端的附加信息到服务端,

--Accept

--Accept-Charset

--Accept-Enc oding

--Accept-Language

--Authorizati on

--Ex pect

--From

--H ost

--If-Match

--If-Modified-Since

--If-None-Match

--If-Range

--If-Unmodifi ed-Sinc e

--Max-For wards

--Proxy-Authorization

--R ange

--R eferer

--T E

--Us er-Agent

*******************************************************************************

Response H eader Fields

===============================

response-header fi elds 允许服务端传递关于respons e的、不能放到Status-Line的附加信息。这些头给出关于服务端的信息。

--Acc ept-Ranges

--Age

--ETag

--Location

--Pr oxy-Authenticate

--Retry-After

--Ser v er

--V ar y

--WWW-Authenticate

*******************************************************************************

Entity H eader Fields

========================

Entity-header fields 定义关于entity-body的metainformation(标题字段数据), 如果当前没有body, 则定义被r equest确定的资源信息.

一些metainformation是可选的; 一些是必须的。

--Allow

--C ontent-Encoding

--C ontent-Language

--C ontent-Length

--C ontent-Location

--C ontent-MD5

--C ontent-Range

--C ontent-T y pe

--Ex pires

--Last-Modified

--ex tension-header

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协议 客户端连上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协议(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协议通信流程:

HTTP协议分析

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

http(超文本传输协议)是一个基于请求与响应模式的、无状态的、应用层的协议,常基于TCP的连接方式,HTTP1.1版本中给出一种持续连接的机制,绝大多数的Web开发,都是构建在HTTP协议之上的Web应用。 HTTP URL (URL是一种特殊类型的URI,包含了用于查找某个资源的足够的信息)的格式如下: http: //host[": "port][abs_path] 二、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作为其标识

完整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)

http协议数据包格式

竭诚为您提供优质文档/双击可除http协议数据包格式 篇一:数据包格式 tcp/ip协议族包括诸如internet协议(ip)、地址解析协议(aRp)、互联网控制信息协议(icmp)、用户数据报协议(udp)、传输控制协议(tcp)、路由信息协议(Rip)、telnet、简单邮件传输协议(smtp)、域名系统(dns)等协议。tcp/ip 协议的层次结构如图3所示。 图3tcp/ip协议层次结构 (1)应用层应用层包含一切与应用相关的功能,相当于osi的上面三层。我们经常使用的http、Ftp、telnet、smtp 等协议都在这一层实现。 (2)传输层传输层负责提供可靠的传输服务。该层相当于osi模型中的第4层。在该层中,典型的协议是 tcp(transmissioncontrolprotocol)和 udp(userdatagramprotocol)。其中,tcp提供可靠、有序的,面向连接的通信服务;而udp则提供无连接的、不可靠用户数据报服务。 (3)网际层网际层负责网络间的寻址和数据传输,其功

能大致相当于osi模型中的第3层。在该层中,典型的协议是ip(internetprotocol)。 (4)网络接口层最下面一层是网络接口层,负责数据的实际传输,相当于osi模型中的第1、第2层。在tcp/ip协议族中,对该层很少具体定义。大多数情况下,它依赖现有的协议传输数据。 tcp/ip与osi最大的不同在于osi是一个理论上的网络通信模型,而tcp/ip则是实际运行的网络协议。tcp/ip实际上是由许多协议组成的协议簇。图4示出tcp/ip的主要协议分类情况。 整个过程: 1.dhcp请求ip地址的过程 l发现阶段,即dhcp客户端寻找dhcp服务器的阶段。客户端以广播方式发送dhcpdiscoVeR包,只有dhcp服务器才会响应。 l提供阶段,即dhcp服务器提供ip地址的阶段。dhcp 服务器 接收到客户端的dhcpdiscoVeR报文后,从ip地址池中选择一个尚未分配的ip地址分配给客户端,向该客户端发送包含租借的ip地址和其他配置信息的dhcpoFFeR包。 l选择阶段,即dhcp客户端选择ip地址的阶段。如果有多台dhcp服务器向该客户端发送

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协议分析报告实例

HTTP协议分析 1 实验目的 分析HTTP协议报文首部格式,理解HTTP协议工作过程 2 实验内容 截获HTTP报文,分析HTTP协议报文首部格式,学习HTTP协议工作过程。 3 实验原理 超文本传送协议HTTP(HyperText Transfer Protocol),是万维网客户程序与万维网服务器程序之间的交互所要严格遵守的协议。HTTP是一个应用层协议,它使用TCP连接进行可靠的传送。对于万维网站点的访问要使用的HTTP协议。 HTTP的URL的一般形式是: http://<主机>:<端口>/<路径> WWW采用 B/S 结构,客户使用浏览器在 URL栏中输入 HTTP 请求,即输入对方服务器的地址,向 web 服务器提出请求。如访问师院的机构设置页面 https://www.360docs.net/doc/897731453.html,/jigou/gljg.htm,具体的工作过程如下: (1) 浏览器分析指向页面的URL. (2) 浏览器向DNS请求解析https://www.360docs.net/doc/897731453.html,的IP地址。 (3) 域名系统DNS解析出师院服务器的IP地址 (4) 浏览器与服务器建立TCP连接 (5) 浏览器发出取文件命令:GET /jigou/gljg.htm. (6) 服务器https://www.360docs.net/doc/897731453.html,给出响应,将文件 gljg.htm发送给浏览器。 (7) TCP连接释放。 (8) 浏览器显示“北航机构设置”的页面。 服务器提供的默认端口号为80. 4 实验步骤 步骤 1 在计算机上打开wireshark软件,进行报文截获。 步骤 2 从浏览器上访问https://www.360docs.net/doc/897731453.html,页面,具体操作为打开网页,浏览,关掉网页。 步骤 3 停止wireshark的报文截获,结果命名为http_学号,保存在本机或上 传至服务器目录下。

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)客户端接收服务器所返回的信息通过浏览器显示在用户的显示屏上,然后客户机与服务器断开连接。

1、HTTP协议分析

开放式课题 实验报告 实验名称:基于Wireshark软件的HTTP协议分析 学号: 姓名: 指导教师:宫婧 指导单位:理学院

目录 实验目的..........................................................错误!未定义书签。 1) 掌握Wireshark软件使用方法............. 错误!未定义书签。 2)理解HTTP协议工作原理..................................... 错误!未定义书签。 实验任务.................................... 错误!未定义书签。 1) 抓取数据包........................... 错误!未定义书签。 2)分析数据包........................... 错误!未定义书签。实验环境.............................. 错误!未定义书签。软件介绍 (2) 1) wireshark软件简介 (2) 2) wireshark软件的应用 (2) 3) wireshark软件的价值 (2) 4) wireshark软件的操作简介 (3) HTTP协议详解............................... 错误!未定义书签。 1) HTTP协议基础概念....................... 错误!未定义书签。 2) HTTP协议工作流程....................... 错误!未定义书签。 3) HTTP协议请求响应信息 (6) HTTP请求报文信息....................................6 HTTP响应报文信息....................................7HTTP数据包分析 (8) 1)网络接口层信息 (10) 2)网络层信息 (11) 3)传输层信息 (12) 4)应用层信息 (13) 总结........................................ 错误!未定义书签。参考文献.. (14)

HTTP协议详解,你所不知道的

协议是指计算机通信网络中两台计算机之间进行通信所必须共同遵守的规定或规则,超文本传输协议(HTTP)是一种通信协议,它允许将超文本标记语言(HTML)文档从Web服务器传送到客户端的浏览器 目前我们使用的是HTTP/1.1 版本 Web服务器,浏览器,代理服务器 当我们打开浏览器,在地址栏中输入URL,然后我们就看到了网页。原理是怎样的呢? 实际上我们输入URL后,我们的浏览器给Web服务器发送了一个Request, Web服务器接到Request后进行处理,生成相应的Response,然后发送给浏览器,浏览器解析Response中的HTML,这样我们就看到了网页,过程如下图所示 我们的Request 有可能是经过了代理服务器,最后才到达Web服务器的。 过程如下图所示

代理服务器就是网络信息的中转站,有什么功能呢? 1. 提高访问速度,大多数的代理服务器都有缓存功能。 2. 突破限制,也就是翻-墙了 3. 隐藏身份。 URL详解 URL(Uniform Resource Locator) 地址用于描述一个网络上的资源, 基本格式如下 schema://host[:port#]/path/.../[?query-string][#anchor] scheme 指定低层使用的协议(例如:http, https, ftp) host HTTP服务器的IP地址或者域名 port# HTTP服务器的默认端口是80,这种情况下端口号可以省略。如果使用了别的端口,必须指明,例如https://www.360docs.net/doc/897731453.html,:8080/ path 访问资源的路径 query-string 发送给http服务器的数据 anchor- 锚 URL 的一个例子 https://www.360docs.net/doc/897731453.html,/sj/test/test.aspx?name=sviergn&x=true#stuff Schema: http host: https://www.360docs.net/doc/897731453.html, path: /sj/test Query String: name=sviergn&x=true Anchor: stuff 复制代码

HTTP协议状态码的含义

Http返回状态码: 2开头表示成功返回; 3开头表示请求被重定向; 4开头表示由于客户端造成的错误; 5开头表示由于服务端造成的错误。 "100" : Continue "101" : witching Protocols "200" : OK "201" : Created "202" : Accepted "203" : Non-Authoritative Information "204" : No Content "205" : Reset Content "206" : Partial Content "300" : Multiple Choices "301" : Moved Permanently "302" : Moved temporarily status code "303" : See Other "304" : Not Modified "305" : Use Proxy "307" : Temporary Redirect "400" : Bad Request "401" : Unauthorized "402" : Payment Required "403" : Forbidden "404" : Not Found "405" : Method Not Allowed "406" : Not Acceptable "407" : Proxy Authentication Required "408" : Request Time-out "409" : Conflict "410" : Gone "411" : Length Required "412" : Precondition Failed "413" : Request Entity Too Large "414" : Request-URI Too Large "415" : Unsupported Media Type "416" : Requested range not satisfiable "417" : Expectation Failed "500" : Internal Server Error "501" : Not Implemented "502" : Bad Gateway "503" : Service Unavailable "504" : Gateway Time-out "505" : HTTP Version not supported 1**:请求收到,继续处理 2**:操作成功收到,分析、接受 3**:完成此请求必须进一步处理 4**:请求包含一个错误语法或不能完成 5**:服务器执行一个完全有效请求失败 100——客户必须继续发出请求 101——客户要求服务器根据请求转换 HTTP协议版本 200——交易成功 201——提示知道新文件的URL 202——接受和处理、但处理未完成 203——返回信息不确定或不完整 204——请求收到,但返回信息为空 205——服务器完成了请求,用户代理必 须复位当前已经浏览过的文件 206——服务器已经完成了部分用户的 GET请求 300——请求的资源可在多处得到 301——删除请求数据 302——在其他地址发现了请求数据 303——建议客户访问其他URL或访问方 式 304——客户端已经执行了GET,但文件 未变化 305——请求的资源必须从服务器指定的 地址得到 306——前一版本HTTP中使用的代码, 现行版本中不再使用 307——申明请求的资源临时性删除 4xx: Client Error使用者端(浏览器)错误 400——错误请求,如语法错误 401——请求授权失败 401.1 登入失败 401.2 因服务器设定问题造成登入失败 401.3 由于来源的ACL 问题而未授权 401.4 筛选器授权失败 401.5 ISAPI/CGI 应用程序授权失败 402——保留有效ChargeTo头响应 403——请求不允许 403.1 禁止执行存取 403.2 禁止读取存取 403.3 禁止写入存取 403.4 需要SSL 403.5 需要SSL 128 位加密 403.6 IP 地址被拒绝 403.7 需要客户端凭证 403.8 拒绝存取站台 403.9 太多的使用者 403.10 无效的设定 403.11 密码变更 403.12 对应程序拒绝存取 403.13 客户端凭证已撤销 403.14 目录清单被拒绝 403.15 超过客户端存取授权数 403.16 客户端凭证不被信任或者无效 403.17 客户端凭证已经过期或者无效 404——没有发现文件、查询或URL 405——用户在Request-Line字段定义 的方法不允许 406——请求资源不可访问 407——类似401,用户必须首先在代理 服务器上得到授权 408——客户端没有在用户指定的时间内 完成请求 409——对当前资源状态,请求不能完成 410——服务器上不再有此资源且无进一 步的参考地址 411——服务器拒绝用户定义的 Content-Length属性请求 412一个或多个请求头字段在当前请求中 错误 413请求的资源大于服务器允许的大小 414——请求的资源URL长于服务器允许 的长度 415——请求资源不支持请求项目格式 416——请求中包含Range请求头字段, 在当前请求资源范围内没有range指示 值,请求也不包含If-Range请求头字段 417——服务器不满足请求Expect头字 段指定的期望值,如果是代理服务器,可 能是下一级服务器不能满足请求 5xx: Server Error 服务器端错误讯息 错误码错误讯息说明 500——服务器产生内部错误 500.12 应用程序正在重新启动 500.13 服务器太忙碌 500.15 不允许Global.asa 的要求 500-100.asp ASP 错误 501——服务器不支持请求的函数 502——服务器暂时不可用,有时是为了 防止发生系统过载 503——服务器过载或暂停维修 504 关口过载,服务器使用另一个关口 或服务来响应用户,等待时间设定值较长 505——服务器不支持或拒绝支请求头中 指定的HTTP版本

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头域

HTTP协议的状态码

对于Web编程人员来说,熟悉了解HTTP协议的状态码是很有必要的,很多时侯可能根据HTTP协议的状态码很快就能定位到错误信息!今天整理了一下所有HTTP状态码。 HTTP状态码(HTTP Status Code)是用来表示网页服务器HTTP 响应状态的3位数字代码。它由RFC 2616规范定义的,并得到RFC 2518、RFC 2817、RFC 2295、RFC 2774、RFC 4918等规范扩展。所有状态码的第一个数字代表了响应的五种状态之一。 HTTP/1.1定义的状态码值和对应的原因短语(Reason-Phrase)的例子。 1XX表示:消息 这一类型的状态码,代表请求已被接受,需要继续处理。这类响应是临时响应,只包含状态行和某些可选的响应头信息,并以空行结束。由于HTTP/1.0协议中没有定义任何1xx 状态码,所以除非在某些试验条件下,服务器禁止向此类客户端发送1xx响应。这些状态码代表的响应都是信息性的,标示客户应该采取的其他行动。 “100″ : Continue客户端应当继续发送请求。这个临时响应是用来通知客户端它的部分请求已经被服务器接收,且仍未被拒绝。客户端应当继续发送请求的剩余部分. “101″ : witching Protocols 服务器已经理解了客户端的请求,并将通过Upgrade 消息头通知客户端采用不同的协议来完成这个请求。在发送完这个响应最后的空行后,服务器将会切换到在Upgrade消息头中定义的那些协议。: 只有在切换新的协议更有好处的时候才应该采取类似措施. “102″: Processing由WebDAV(RFC 2518)扩展的状态码,代表处理将被继续执行。 2XX表示:成功 这一类型的状态码,代表请求已成功被服务器接收、理解、并接受。

http协议(四)http状态码

http协议(四)http状态码 一:http状态码 表示客户端http请求的返回结果、标记服务器端的处理是否正常、通知出现的错误等工作状态码的类别如下: http状态码种类繁多,大概有60多种,实际上经常使用的只有14种,下面为一一介绍 1、2XX 成功:请求被正常处理 1.1 200 OK 表示从客户端发来的请求在服务器端被正常处理 1.2 204 No Content 表示服务器接收的请求以成功处理,但没有资源可返回,即:响应报文中不含实体的主体部分1.3 206 Partial Content 表示客户端进行了范围请求且服务器成功执行了这部分的GET请求,响应报文中包含由Content_Range指定范围的实体内容 “Content_Range为请求首部的一种类型,后面的随笔会讲到” 2、3XX 重定向:服务器需要执行某些特殊处理以正确处理请求(即URI地址或者资源的缓存的资源有效时间过期) 2.1 301 Moved Permanently 永久性重定向:表示请求的资源已被分配了新的URI,以后应使用资源现在的URI,如果已经保存了书签,这时候应该按照Location首部提示的URI重新保存 2.2 302 Found 临时性重定向:表示请求的资源已被分配到了新的URI,希望(本次)能使用新的URI访问2.3 303 See Other 表示请求对应的资源存在另一个URI,应该使用GET方法定向获取请求的资源 PS:当301、302、303响应状态码返回,几乎所有浏览器都会把POST改成GET,并删除请求报文内的主体,之后请求自动再次发送 301、302标准禁止将POST改为GET,但实际中都会允许这么做~~~GG 2.4 304 Not Modified 表示客户端发送得附带条件的请求时,服务器运行请求访问,但未满足条件的情况,304返回时,不包含任何响应的主体部分 附带条件:采用GET方法的请求报文中包含If-......条件的任一首部,后面的随笔中介绍2.5 307 Temporary Redirect 临时重定向:禁止将POST转换为GET,该状态码会严格遵守浏览器标准 3、客户端错误:4XX的响应结果表明客户端是发生错误的原因所在 3.1 400 Bad Ruquest

HTTP协议详解

当今web程序的开发技术真是百家争鸣,https://www.360docs.net/doc/897731453.html,, PHP, JSP,Perl, AJAX 等等。无论Web技术在未来如何发展,理解Web程序之间通信的基本协议相当重要, 因为它让我们理解了Web应用程序的内部工作. 本文将对HTTP协议进行详细的实例讲解,内容较多,希望大家耐心看。也希望对大家的开发工作或者测试工作有所帮助。使用Fiddler工具非常方便地捕获HTTP Request和HTTP Response, 关于Fiddler工具的用法,请看我另一篇博客[Fiddler 教程] 阅读目录 1. 什么是HTTP协议 2. Web服务器,浏览器,代理服务器 3. URL详解 4. HTTP协议是无状态的 5. 打开一个网页需要浏览器发送很多次Request 6. HTTP消息的结构 7. Get和Post方法的区别 8. 状态码 9. HTTP Request header 10. HTTP Response header 11. HTTP协议是无状态的和Connection: keep-alive的区别 什么是HTTP协议 协议是指计算机通信网络中两台计算机之间进行通信所必须共同遵守的规定或规则,超文本传输协议(HTTP)是一种通信协议,它允许将超文本标记语言(HTML)文档从Web服务器传送到客户端的浏览器 目前我们使用的是HTTP/1.1 版本 Web服务器,浏览器,代理服务器 当我们打开浏览器,在地址栏中输入URL,然后我们就看到了网页。原理是怎样的呢? 实际上我们输入URL后,我们的浏览器给Web服务器发送了一个Request, Web服务器接到Request后进行处理,生成相应的Response,然后发送给浏览器,浏览器解析Response 中的HTML,这样我们就看到了网页,过程如下图所示

HTTP 协议分析实验

实验六HTTP 协议分析实验 一、实验目的 在PC 机上访问RCMS 的Web 页面,截获报文,分析HTTP 协议的报文格式和HTTP 协议的工作过程。 二、实验设备和连接 本地实验室环境,无须设备连接; 注意:请通过访问可以连接的WWW 站点或使用IIS 建立本地WWW 服务器来进行实验。 三、实验步骤 步骤1:在PC 机上运行Ethereal,开始截获报文,为了只截获和我们要访问的网站相关的数据报,将截获条件设置为“not broadcast and not multicast”; 步骤2:从浏览器上访问Web 界面,如http://202.202.43.125。打开网页,待浏览器的状态栏出现“完毕”信息后关闭网页。 步骤3:停止截获报文,将截获的报文命名为http-学号保存。 分析截获的报文,回答以下几个问题: 1)综合分析截获的报文,查看有几种HTTP 报文? 有两种报文

一种是从客户到服务器的请求报文 另一种是从服务器到客户的响应报文 2)在截获的HTTP 报文中,任选一个HTTP 请求报文和对应的HTTP 应答报文,仔细 分析它们的格式,填写表20 和表 5.21。

表20 HTTP 请求报文格式

表21 HTTP 应答报文格式 3)分析在截获的报文中,客户机与服务器建立了几个连接?服

务器和客户机分别使用 了哪几个端口号? __________________________________________________________ _________________ __________________________________________________________ _____________________ __________________________________________________________ _____________________ 4 )综合分析截获的报文,理解HTTP 协议的工作过程,将结果填入表22 中。 表22 HTTP 协议工作过程

http协议包含哪些组成部分

竭诚为您提供优质文档/双击可除http协议包含哪些组成部分 篇一:http协议整理 简介:http协议 http协议是用于从www服务器传输超文本到本地浏览器的传送协议。http协议由请求和响应构成,是一个标准的客户端服务器模型。tcp协议之上的应用层协议。默认http的端口号为80。 http协议都是客户端发起请求,服务器回送响应。见下图 http是一个基于请求与响应模式的、无状态的、应用层的协议,同一个客户户端的这次请求和上次请求是没有对应关系。 介绍uRl: httpuRl的格式如下:要通过http协议来定位网络资源;host表示合法的internet主机域名或者ip地址;port指定一个端口号,为空则使用缺省端口80;abs_path指定请求资源的uRi;如果uRl中没有给出abs_path,那么当它作为请求uRi时,必须以“/”的形式给出,通常这个工作浏

览器自动帮我们完成。 http协议请求 请求由三部分组成,分别是:请求行、消息报头、请求正文 请求行以一个方法符号开头,以空格分开,后面跟着请求的uRi和协议的版本,格式如下: methodRequest-uRihttp-Version 其中method表示请求方法;Request-uRi是一个统一资源标识符;http-Version表示请求的http协议版本请求方法: get请求获取Request-uRi所标识的资源 post在Request-uRi所标识的资源后附加新的数据 head请求获取由Request-uRi所标识的资源的响应消息报头 put请求服务器存储一个资源,并用Request-uRi作为其标识 delete请求服务器删除Request-uRi所标识的资源 tRace请求服务器回送收到的请求信息,主要用于测试或诊断 connect保留将来使用 options请求查询服务器的性能,或者查询与资源相关的选项和需求

相关文档
最新文档