HTTP协议报头信息详细讲解

合集下载

HTTP协议简介

HTTP协议简介

HTTP协议简介关于HTTP协议的基本介绍。

HTTP协议是基于TCP/IP协议之上的应⽤层协议,主要⽤于规定互使⽤联⽹中客户端和服务器之间的通信格式,不关⼼具体传输细节,默认80端⼝。

对于Web开发,不管是前端还是后端开发,了解HTTP协议是必备的⼀些基本知识。

发展历程HTTP/0.9于1991年发布,只有⼀个GET命令,返回HTML格式内容。

HTTP/1.0于1996年5⽉发布,增加POST、HEAD命令,传输内容可以说任意格式,不再仅限于HTML,并且报⽂规定了⼀些元数据字段,⽐如字符集、状态码、编码、缓存等。

HTTP/1.1于1997年1⽉发布,增加PUT\PATCH\DELETE等命令,并新增了⼀些功能机制:持久连接(keep-alive可保持长连接,减少重复请求)。

管道机制(pipelining,⼀个TCP连接中客户端可同时发送多个请求)。

Content-Length字段(报⽂内容长度)。

Host字段(⽤于指定服务器域名,可以将请求发往同⼀台服务器的不同站点)。

1.1版本基本完善了HTTP协议,并且⼀直使⽤⾄今仍然是⽬前最流⾏的版本。

SPDY于2009年由⾕歌研发,使⽤多种新特性提⾼HTTP/1.1版本效率不⾼的问题。

作为HTTP/2版本草案,在HTTP/2发布后已停⽌使⽤。

HTTP/2于2015年发布,基于⾕歌的SPDY协议之上进⾏了⼩部分修改。

主要有以下特点:⼆进制协议(HTTP/1.1版本头信息使⽤⽂本格式,数据体可以是⽂本或⼆进制格式,⽽HTTP/2版本则全部使⽤⼆进制格式,⽅便将来扩展)。

多⼯传输(复⽤TCP连接,双向实时通信,客户端服务器可同时发送多个请求和响应,并且不需要按照请求顺序回应,避免队头阻塞问题)。

头信息压缩(HTTP协议是⽆状态的,因此很多请求都需要带上Cookie、User Agent等重复字段,影响效率。

HTTP/2使⽤gzip、compress等算法压缩头信息后,并且在客户端和服务器都维护⼀张头信息表,记录这些字段,从⽽提⾼速度)。

HTTP中header头部信息详解

HTTP中header头部信息详解

HTTP中header头部信息详解HTTP Request的Header信息1、HTTP请求⽅式如下表:GET向Web服务器请求⼀个⽂件POST向Web服务器发送数据让Web服务器进⾏处理PUT向Web服务器发送数据并存储在Web服务器内部HEAD检查⼀个对象是否存在DELETE从Web服务器上删除⼀个⽂件CONNECT对通道提供⽀持TRACE跟踪到服务器的路径OPTIONS查询Web服务器的性能说明:主要使⽤到“GET”和“POST”。

实例:POST /test/tupian/cm HTTP/1.1分成三部分:1. POST:HTTP请求⽅式2. /test/tupian/cm:请求Web服务器的⽬录地址(或者指令)3. HTTP/1.1: URI(Uniform Resource Identifier,统⼀资源标识符)及其版本备注:在Ajax中,对应method属性设置。

2、Host说明:请求的web服务器域名地址3、User-Agent说明:HTTP客户端运⾏的浏览器类型的详细信息。

通过该头部信息,web服务器可以判断到当前HTTP请求的客户端浏览器类别。

实例:User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.8.1.11) Gecko/20071127 Firefox/2.0.0.114、Accept说明:指定客户端能够接收的内容类型,内容类型中的先后次序表⽰客户端接收的先后次序。

例如:Accept:text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5备注:在Prototyp(1.5)的Ajax代码封装中,将Accept默认设置为“text/javascript, text/html, application/xml, text/xml, */*”。

HTTP协议简述

HTTP协议简述

HTTP协议简述前⾔HTTP协议是整个Web的基础,是客户端和服务器端协同⼯作的基⽯,要想了解Web的⼯作原理、优化Web应⽤,就要完全理解HTTP协议。

HTTP的操作过程1 ,浏览器分析指向页⾯的URL2 ,浏览器向DNS系统请求解析域名所对应的服务器IP地址3 ,DNS系统解析出服务器的IP,并返回给主机4 ,浏览器与该服务器的进程建⽴TCP链接(三次握⼿,端⼝默认为80)5 ,浏览器发出HTTP请求:如GET /article/index.html6 ,服务器收到请求并作出相应处理,把⽂件index.html发送给浏览器7 ,释放TCP链接(四次握⼿)8 ,浏览器解析index.html⽂件,将web页显⽰出来。

HTTP协议的特点HTTP协议是⽆状态的,即多次访问⼀个服务器上的页⾯,服务器并不知道你曾经访问过,每次访问的响应都当做第⼀次访问⼀样。

所以,在实际应⽤中,通常使⽤CooKie加数据库的⽅式记录和跟踪⽤户的活动。

HTTP有⾮持久连接和持久连接:采⽤⾮持久连接时,⽹页的每个元素对象(如.png,jpeg图等)的传输都需单独建⽴⼀个TCP连接(第三次握⼿可携带请求信息)采⽤持久连接时,仅需建⽴⼀次TCP连接,服务器发送响应后仍保持连接,客户和服务器可以继续在这条连接上发送请求和响应报⽂。

Cookie以及其作⽤CooKie是由服务器⽣成,但存储在⽤户主机上的⽂本⽂件,它保存了服务器和客户之间传递的状态信息,作为识别⽤户的⼿段。

通过Cookie服务器就能从数据库中查询该⽤户的活动记录,进⽽可以执⾏⼀些个性化操作get和post⽅法的区别:⼀般我们在浏览器输⼊⼀个⽹址访问⽹站都是GET请求;在FORM表单中,可以通过设置Method指定提交⽅式为GET或POST,默认时为GET提交⽅式。

get请求⼀般不会修改服务器的信息,仅⽤于请求页⾯;post请求可能会修改服务器中的资源信息,如提交评论、博客等都是通过post请求实现。

HTTP协议详解(深入理解)

HTTP协议详解(深入理解)

HTTP协议详解(深⼊理解)引⼊超⽂本传输协议(HTTP,HyperText Transfer Protocol)是互联⽹上应⽤最为⼴泛的⼀种⽹络协议。

所有的WWW⽂件都必须遵守这个标准。

设计HTTP最初的⽬的是为了提供⼀种发布和接收HTML页⾯的⽅法。

1960年美国⼈Ted Nelson构思了⼀种通过计算机处理⽂本信息的⽅法,并称之为超⽂本(hypertext),这成为了HTTP超⽂本传输协议标准架构的发展根基。

Ted Nelson组织协调万维⽹协会(World Wide Web Consortium)和互联⽹⼯程⼯作⼩组(Internet Engineering Task Force )共同合作研究,最终发布了⼀系列的RFC,其中著名的RFC 2616定义了HTTP 1.1。

http协议的作⽤及特点HTTP是⼀个客户端和服务器端请求和应答的标准(TCP)。

客户端是终端⽤户,服务器端是⽹站。

通过使⽤Web浏览器、⽹络爬⾍或者其它的⼯具,客户端发起⼀个到服务器上指定端⼝(默认端⼝为80)的HTTP请求。

(我们称这个客户端)叫⽤户代理(user agent)。

应答的服务器上存储着(⼀些)资源,⽐如HTML⽂件和图像。

(我们称)这个应答服务器为源服务器(origin server)。

在⽤户代理和源服务器中间可能存在多个中间层,⽐如代理,⽹关,或者隧道(tunnels)。

尽管TCP/IP协议是互联⽹上最流⾏的应⽤,HTTP协议并没有规定必须使⽤它和(基于)它⽀持的层。

事实上,HTTP可以在任何其他互联⽹协议上,或者在其他⽹络上实现。

HTTP只假定(其下层协议提供)可靠的传输,任何能够提供这种保证的协议都可以被其使⽤。

通常,由HTTP客户端发起⼀个请求,建⽴⼀个到服务器指定端⼝(默认是80端⼝)的TCP连接。

HTTP服务器则在那个端⼝监听客户端发送过来的请求。

⼀旦收到请求,服务器(向客户端)发回⼀个状态⾏,⽐如"HTTP/1.1 200 OK",和(响应的)消息,消息的消息体可能是请求的⽂件、错误消息、或者其它⼀些信息。

HTTP 报头,Content-disposition

HTTP 报头,Content-disposition

当然filename参数可以包含路径信息,但User-Agnet会忽略掉这些信息,只会把路径信息的最后一部分做为文件名。当你在响应类型为 application/octet- stream情况下使用了这个头信息的话,那就意味着你不想直接显示内容,而是弹出一个”文件下载”的对话框,接下来就是由你来决定“打开”还是“保存” 了。
////attachment --- 作为附件下载
////inline --- 在线打开
HttpContext.Current.Response.AddHeader("Content-Length", fileSize.ToString());
byte[] fileBuffer = new byte[fileSize];
将上述需求进行归我给出如下例子代码:
public static void ToDownload(string serverfilpath,string filename)
{
FileStream fileStream = new FileStream(serverfilpath, FileMode.Open);
w3c的说明:/Protocols/rfc2616/rfc2616-sec19.html
Content-Disposition的使用和注意事项
2008年08月27日 星期三 下午 07:21Content-Disposition的使用和注意事项
最近不少Web技术圈内的朋友在讨论协议方面的事情,有的说web开发者应该熟悉web相关的协议,有的则说不用很了解。个人认为这要分层次来看待这个问 题,对于一个新手或者刚入门的web开发人员而言,研究协议方面的东西可能会使得web开发失去趣味性、抹煞学习积极性,这类人应该更多的了解基本的 Web技术使用。而对于在该行业工作多年的老鸟来说,协议相关的内容、标准相关内容应该尽量多些的了解,因为只有这样才能使得经手的web系统更加优秀 (安全、漂亮、快速、兼容性好、体验好……)。本文我们来说一下MIME 协议的一个扩展Content-disposition。

http报文常见的请求头、响应头

http报文常见的请求头、响应头

http报⽂常见的请求头、响应头http报⽂常见的请求头1.AcceptAccept: text/html 浏览器可以接受服务器回发的类型为 text/html。

Accept: /代表浏览器可以处理所有类型,(⼀般浏览器发给服务器都是发这个)。

2.Accept-EncodingAccept-Encoding: gzip, deflate 浏览器申明⾃⼰接收的编码⽅法,通常指定压缩⽅法,是否⽀持压缩,⽀持什么压缩⽅法(gzip,deflate),(注意:这不是只字符编码)。

3.Accept-LanguageAccept-Language:zh-CN,zh;q=0.9 浏览器申明⾃⼰接收的语⾔。

4.ConnectionConnection: keep-alive 当⼀个⽹页打开完成后,客户端和服务器之间⽤于传输HTTP数据的TCP连接不会关闭,如果客户端再次访问这个服务器上的⽹页,会继续使⽤这⼀条已经建⽴的连接。

Connection: close 代表⼀个Request完成后,客户端和服务器之间⽤于传输HTTP数据的TCP连接会关闭,当客户端再次发送Request,需要重新建⽴TCP连接。

5.Host(发送请求时,该报头域是必需的)Host: 请求报头域主要⽤于指定被请求资源的Internet主机和端⼝号,它通常从HTTP URL中提取出来的。

6.Refererer-AgentUser-Agent:Mozilla/...,告诉HTTP服务器,客户端使⽤的操作系统和浏览器的名称和版本。

8.Cache-ControlCache-Control:private 默认为private 响应只能够作为私有的缓存,不能再⽤户间共享Cache-Control:public 响应会被缓存,并且在多⽤户间共享。

正常情况, 如果要求HTTP认证,响应会⾃动设置为 private.Cache-Control:must-revalidate 响应在特定条件下会被重⽤,以满⾜接下来的请求,但是它必须到服务器端去验证它是不是仍然是最新的。

HTTP协议的头部

HTTP协议的头部

HTTP协议的头部HTTP⾸部字段有四种类型:通⽤⾸部字段,请求⾸部字段,响应⾸部字段,实体⾸部字段。

通⽤⾸部字段:⾸部字段说明Cache-Control控制缓存的⾏为Connection逐跳⾸部、连接的管理Date创建报⽂的⽇期时间Pragma报⽂指令Trailer报⽂末端的⾸部⼀览Transfer-Encoding指定报⽂主体的传输编码⽅式Upgrade升级为其他协议Via代理服务器的相关信息Warning错误通知请求⾸部字段:⾸部字段说明Accept⽤户代理的媒体类型Accept-Charset优先的字符集Accept-Encoding优先的内容编码Accept-Language优先的语⾔Authorization Web认证信息Expect期待服务器的特定⾏为From⽤户的电⼦邮件Host请求资源所在服务器if-Match⽐较实体标记(ETag)if-Modified-Since⽐较资源的更新时间if-None-Match⽐较实体标记(与if-Match相反)if-Range资源未更新时发送实体Byte的范围请求if-Unmodified-Since⽐较资源的更新时间(与if-Modified-Since想法)Max-Forwards最⼤传输逐跳Proxy-Authorization代理服务器要求客户端的认证信息Range实体的字节范围请求Refer对请求中URI的原始获取⽅TE传输编码的优先级User-Agent HTTP客户端的信息响应⾸部字段:⾸部字段说明Accept-Ranges是否接受字节范围请求Age推算资源创建经过时间⾸部字段说明ETag资源匹配信息Location令客户端重定向⾄指定URIProxy-Authenticate代理服务器对客户端的认证信息Retry-After对再次发起请求的时机要求Server HTTP服务器的安装信息Vary代理服务器缓存的管理信息WWW-Authenticate服务器对客户端的认证信息实体⾸部字段:⾸部字段说明Allow资源可⽀持的HTTP⽅法Content-Encoding实体主体适⽤的编码⽅式Content-Language实体主体的⾃然语⾔Content-Length实体主体的⼤⼩Content-Location替代对饮资源的URIContent-MD5实体主体的报⽂摘要Content-Range实体主体的位置范围Content-Type实体主体的媒体类型Expires实体主体过期的⽇期时间Last-Modified资源的最后修改⽇期时间HTTP⾸部字段将定义成缓存代理和⾮缓存代理两种类型:端到端(End-to-end Header):此类中的⾸部字段会转发给请求/响应对应的最终接受⽬标,且必须在由缓存⽣成的响应中,另外规定它必须被转发。

HTTP请求格式:请求行、请求头详细介绍【爬虫工程师必会】

HTTP请求格式:请求行、请求头详细介绍【爬虫工程师必会】

在网络传输中HTTP协议非常重要,该协议规定了客户端和器端请求和应答的标准HTTP协议能保证计算机正确快速地传输超文本文档,并确定了传输文档中的哪部分,以及哪部分内容首先显示(如文本先于图形)等。

根据HTTP协议的规定,客户端一个HTTP请求到器的请求消息,由请求行,求头部、空行以及请求数据四部分组成。

如下所示为请求消息的一般格式。

结合一个典型的HTTP请求示例,详细介绍HTTP请求信息的各个组成部分。

示例内容如下:GEThttps://www.baidu./content-search.xmlHTTP/1.1Host:www.baidu.Connection:keep-aliveSec-Fetch-Site:same-originSec-Fetch-Mode:no-corsUser-Agent:Mozilla/5.0(WindowsNT10.0;WOW64)AppleWebKit/537.36(KHTML,lik eGecko)Chrome/78.0.3904.108Safari/537.36Accept-Encoding:gzip,deflate,brAccept-Language:zh-CN,zh;q=0.9Cookie:BIDUPSID=12D4BD8584CA4E016E061A2A996EF369;PSTM=1620090350;BAIDUI D=12D4BD8584CA4E01C03BA560AACCF2CE:FG=1;BD_UPN=12314753;H_PS_PSSID=3398 4_31660_33848_33759_33676_33607_33987_26350;BDORZ=B490B5EBF6F3CD402E515 D22BCDA1598;__yjs_duid=1_1a965d65ab35181f7b7b98cce26990951620094330751; ab_sr=1.0.0_YjM2Y2YwOWI1MDU4ZDEzODMyZDZkNDBlODllOWEzZTdiMjk4YzgzYmUyM2Z jODA4MWM0MDExZTdiMDZlOTQwOWZhMWI0NGQ3NzNhODI2NTYzMWM1NzQ2ZDBmYjhkM2Q1;i speed_lsm=0;H_PS_645EC=b177fVn0%2Brl2KczNrCfwRaWGfk3JZzrl7ScjgHBcxVvOku bEWrAPvQ6AXa4;BD_HOME=1;__guid=136081015.3970791550720005000.1620116535 606.869;monitor_count=2;BA_HECTOR=8121a4848h8l0k0l6o1g9213e0r1.请求行上例中第1行为请求行,包含了请求方法、URL和协议版本,代码如下:GEThttps://www.baidu./content-search.xmlHTTP/1.1其中,GET请求方法,https://www.baidu/URL,HTTP/1.1指定了协议版本。

http协议格式

http协议格式

http协议格式HTTP(Hypertext Transfer Protocol)是构建互联网应用的基础协议之一,它定义了客户端和服务器之间进行通信的格式和规则。

HTTP协议的主要目标是实现一种简单而灵活的方式来传输超文本,以便可以访问和传输网页、图片、视频等资源。

HTTP协议的格式主要包括请求格式和响应格式。

下面分别介绍这两种格式。

一、请求格式HTTP请求由客户端发送给服务器,用于请求对特定资源的访问。

请求格式包括请求行、请求头部和请求主体。

1. 请求行:请求行的格式为:METHOD URL HTTP/版本号其中,METHOD表示请求方法,包括常见的GET、POST、PUT、DELETE等;URL代表请求的资源的路径;HTTP/版本号指定了使用的HTTP协议的版本。

2. 请求头部:请求头部包括多行,每行由键值对组成。

常见的头部有:- Host:指定请求的服务器主机名和端口号。

- User-Agent:客户端的浏览器信息。

- Accept:客户端可以接受的数据类型。

- Content-Type:请求主体的数据类型。

3. 请求主体:请求主体是可选的,用于在POST请求中向服务器传送数据。

二、响应格式服务器接收到客户端的请求后,返回给客户端一个响应。

响应格式包括状态行、响应头部和响应主体。

1. 状态行:状态行的格式为:HTTP/版本号状态码状态描述其中,状态码表示服务器处理请求的结果,常见的状态码有200(成功)、404(资源未找到)、500(服务器内部错误)等。

2. 响应头部:响应头部和请求头部的格式类似,由多行键值对组成。

常见的头部有:- Content-Type:响应主体的数据类型。

- Content-Length:响应主体的长度。

- Set-Cookie:设置响应的Cookie。

3. 响应主体:响应主体是服务器返回给客户端的数据。

三、HTTP协议的特点1. 简单灵活:HTTP协议采用简单的文本格式,易于理解和编写。

http 协议头

http 协议头

http 协议头HTTP(Hypertext Transfer Protocol)是一种用于在Web上进行通信的协议。

它是基于客户端-服务器模型的请求-响应协议,客户端发送请求到服务器,服务器返回响应。

HTTP协议的请求和响应都有一个固定的结构,包括协议头和消息主体。

协议头是描述消息的元数据,提供了关于请求或响应的重要信息。

HTTP协议头包含了以下几个重要的字段:1. 请求行:请求行包含了请求方法、请求资源路径和HTTP协议版本。

常见的请求方法有GET、POST、PUT、DELETE等,用于定义客户端对服务器的操作。

2. 响应行:响应行包含了HTTP协议版本、状态码和相关的描述。

状态码由三位数字组成,用于表示请求的处理结果,比如200表示成功,404表示资源不存在等。

3. 请求头:请求头包含了其他与请求相关的信息,比如User-Agent字段用于标识客户端软件的名称和版本号,Accept字段用于告诉服务器客户端可以接受的数据类型等。

4. 响应头:响应头包含了其他与响应相关的信息,比如Server字段用于标识服务器软件的名称和版本号,Content-Type字段用于告诉客户端返回的数据类型等。

5. Cookie:Cookie是服务器发送给客户端的一小段数据,用于存储客户端的会话信息。

当客户端发送请求时,会携带上次请求中的Cookie信息,服务器可以根据这些信息进行特定的处理。

6. Content-Length:Content-Length字段用于告诉客户端返回的数据长度,客户端可以根据这个字段来判断响应是否完整。

7. Cache-Control:Cache-Control字段用于控制缓存行为,比如设置缓存的过期时间、是否允许缓存等。

8. Transfer-Encoding:Transfer-Encoding字段用于指定传输编码格式,比如chunked表示以分块形式传输数据。

HTTP协议头的作用是提供了关于请求和响应的重要信息,客户端和服务器可以根据协议头来进行协商和处理。

HTTP协议详细总结

HTTP协议详细总结

HTTP协议详细总结HTTP超⽂本传输协议,是WWW上应⽤的最多的协议。

了解和掌握HTTP协议是对程序⼈员的基本要求。

⼀、HTTP介绍 HTTP是⼀个基于请求/响应模式的、⽆状态的协议。

即,浏览器与服务端连接之后,浏览器向服务器发送⼀个请求,服务器返回响应信息之后,双⽅的链接就被关闭。

我们要知道,应⽤层的HTTP要使⽤传输层的TCP协议来完成。

⽽TCP协议是通过“3次握⼿”建⽴连接,是⾯向连接的协议。

默认情况下,浏览器与Web服务器上80端⼝监听的服务器程序建⽴TCP连接。

HTTP1.0是典型的请求/响应模式。

为了减少服务器的开销,HTTP1.1默认有“持续连接”的机制。

通过这种机制,客户端发送请求得到响应后,连接不会马上关闭,可以继续发送请求,还可以流⽔线发送多个请求、⽽不⽤等待每⼀个响应的到来。

⼆、URI和URL URI(统⼀资源标识符)纯粹是⼀种符号结构,⽤于指定构成Web资源的字符串的各个不同部分。

⽽URL(统⼀资源定位符)是⼀种特殊的URI,包含了⽤于查找某个资源的⾜够信息。

URI是⼀种语义上的抽象概念,可以是绝对的,也可以是相对的,⽽URL则必须提供⾜够的信息来定位,所以,是绝对的,⽽通常说的relative URL,则是针对另⼀个absolute URL,本质上还是绝对的。

三、HTTP请求格式如图:(CRLF表⽰回车符+换⾏符,不同颜⾊之间⽤空格隔开)第⼀⾏叫做请求⾏。

所以我们可以说HTTP请求由请求⾏、消息报头、请求正⽂组成。

1、请求⾏如上,请求⾏以⼀个⽅法符号开头,空格之后,⼀个请求URI,再空格,然后⼀个HTTP版本,最后⼀个回车换⾏。

其中请求⽅法有如下⼏种:我们在浏览器地址栏直接输⼊地址的时候,采⽤的就是GET⽅法。

HEAD⽅法⼀般⽤于测试超链接的有效性,因为它只是请求响应消息的报头。

消息报头后⾯会讲。

(HTTP协议中,请求⽅法必须全部⼤写)2、请求正⽂类似name=XXX&pwd=XXXX的内容四、HTTP响应格式与HTTP请求类似,如图:第⼀⾏叫做状态⾏。

Http头部字段总结

Http头部字段总结

HTTP 中头部字段概念:1、Accept:告知WEB效劳器自己同意什么介质类型,*/*表示任何类型,type/*表示该类型下的所有子类型,type/sub-type。

2、Accept-Charset:阅读器申明自己接收的字符集。

3、Accept-Encoding:阅读器申明自己接收的编码方式,通常指定紧缩方式,是不是支持紧缩,支持什么紧缩方式(gzip,deflate)。

4、Accept-Language:阅读器申明自己接收的语言。

5、Accept-Ranges:WEB效劳器说明自己是不是同意获取其某个实体的一部份(比如文件的一部份)的请求。

bytes:表示同意,none:表示不同意。

6、Age:今世理效劳器用自己缓存的实体去响应请求时,用该头部说明该实体从产生到此刻通过量长时刻了。

7、Allow:列出了请求URI(Request-URI)指定资源所支持的几种方式。

Allow 头域必需出此刻405(方式不被许诺)响应中。

8、Authorization:当客户端接收到来自WEB效劳器的WWW-Authenticate 响应时,用该头部来回应自己的身份验证信息给WEB效劳器。

9、Cache-Control:(1)请求:no-cache(不要缓存的实体,要求此刻从WEB效劳器去取);max-age(只同意Age 值小于max-age 值,而且没有过时的对象);max-stale(能够同意过去的对象,可是过时时刻必需小于max-stale 值);min-fresh(同意其新鲜生命期大于其当前Age 跟min-fresh 值之和的缓存对象);(2)响应:public(能够用Cached 内容回应任何用户);private(只能用缓存内容回应先前请求该内容的那个用户);no-cache(能够缓存,可是只有在跟WEB效劳器验证了其有效后,才能返回给客户端);max-age(本响应包括的对象的过时时刻);ALL:no-store(不许诺缓存)10、Connection:(1)请求:close(告知WEB效劳器或代理效劳器,在完本钱次请求的响应后,断开连接,不要等待本次连接的后续请求了)keepalive(告知WEB效劳器或代理效劳器,在完本钱次请求的响应后,维持连接,等待本次连接的后续请求)(2)响应:close(连接已经关闭)keepalive(连接维持着,在等待本次连接的后续请求)Keep-Alive:若是阅读器请求维持连接,那么该头部说明希望WEB 效劳器维持连接多长时刻(秒),例如:Keep-Alive:30011、Content-Encoding:WEB效劳器说明自己利用了什么紧缩方式(gzip,deflate)紧缩响应中的对象。

HTTP协议格式详解

HTTP协议格式详解

HTTP协议格式详解HTTP(Hypertext Transfer Protocol,超文本传输协议)是一种用于传输超媒体文档(例如HTML)的应用层协议。

在互联网中,HTTP是客户端和服务器之间进行通信的基础协议。

本文将详细介绍HTTP协议的格式。

1. HTTP请求格式HTTP请求由请求行、请求头和请求体三部份组成。

1.1 请求行请求行包含三个字段:请求方法、请求URL和HTTP协议版本。

请求方法指定请求的类型,常见的有GET、POST、PUT和DELETE等。

请求URL指定了请求的资源路径。

HTTP协议版本指定了使用的HTTP协议版本,如HTTP/1.1。

示例:GET /index.html HTTP/1.11.2 请求头请求头包含了关于请求的附加信息,每一个字段都以键值对的形式浮现,字段之间使用冒号分隔。

常见的请求头字段有:- Host:指定服务器的域名或者IP地址。

- User-Agent:指定客户端的用户代理,通常是浏览器的名称和版本。

- Accept:指定客户端可以接受的响应内容类型。

- Content-Type:指定请求体的内容类型。

示例:Host: exampleUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8Content-Type: application/x-www-form-urlencoded1.3 请求体请求体包含了请求的数据,通常在POST请求中使用。

请求体的格式取决于Content-Type字段的值。

示例:username=admin&password=1234562. HTTP响应格式HTTP响应由状态行、响应头和响应体三部份组成。

计算机网络——HTTP协议详解

计算机网络——HTTP协议详解

计算机⽹络——HTTP 协议详解⼀、前⾔ 前段时间为了研究计算机⽹络,看了看《计算机⽹络⾃顶向下⽅法》这本书。

不得不说这真是⼀本好书,内容详细,⽽且讲解的浅显易懂,采⽤了⼤量类⽐的⽅式进⾏讲解,⽽不是单纯的叙述理论,同时在每⼀章的后⾯都有⼤量的练习题以及很有意思的编程题,所以开头先来推荐⼀波。

这本书我暂时只看到了第⼆章,刚看完的内容,所以写⼀篇相关的博客,就当是记笔记了。

⼆、详解 2.1 HTTP 概述 是⼀个应⽤层的协议,全称是超⽂本传输协议,它是的核⼼。

由两个程序实现——客户端程序和服务端程序,⽽的作⽤简单来说就是客户端向服务器发请求,⽽服务器根据请求做出响应。

定义了客户端向服务器请求资源的⽅式,以及服务器向客户端回送资源的⽅式,也就是的请求+响应模型。

客户端向服务器发送请求报⽂请求资源,服务器接收到请求,向客户端回送包含这些资源的响应报⽂。

基于协议,由协议⽀持数据的传输,这说明HTTP 协议是⼀个⾯向连接的可靠协议。

当客户端向服务器请求资源时,⾸先将与服务器建⽴⼀个连接,当连接建⽴成功时,客户端和服务器之间就可以通过套接字接⼝访问,客户端通过连接传输请求报⽂,⽽服务器也通过这个连接回送响应报⽂及资源。

由于的可靠传输,保证了的报⽂⼀定能够完整的送到服务器上,⽽服务器的响应也能完整的回送到客户。

请求的资源⼀般是⼀个页⾯,⽽⼀个页⾯是由⼀个或多个对象组成的,这个对象可能是⼀个⽂件,⼀张图⽚,甚⾄是⼀段视频或者⼩程序。

对于来说,组成⼀个页⾯的这些对象并不属于同⼀个资源,每⼀个对象都是⼀个单独的资源,需要逐⼀请求。

假设我们向服务器请求⼀个页⾯,这个页⾯由⼀个⽂件以及张图⽚组成(通过路径引⽤图⽚),则这个页⾯共有个对象,当服务器接收到客户端对页⾯的请求后,将⽂件通过响应报⽂返回,⽽客户端接收到响应的⽂件后,发现它还引⽤了张图⽚,这时客户端将再次发送个请求,来分别请求这张图⽚。

服务器向客户端发送被请求的⽂件,但是不记录任何客户的信息,所以当你连续向服务器请求同⼀份资源两次时,服务器也会给你响应两次,不会因为你已经请求过就不给你响应了。

HTTP协议详解

HTTP协议详解

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

http 协议头

http 协议头

http 协议头HTTP协议头。

HTTP(Hypertext Transfer Protocol)是一种用于传输超文本的应用层协议,它是全球最重要的应用层协议之一。

在互联网中,HTTP协议被用来传输超文本、图像、视频、音频等资源。

HTTP协议的头部信息对于客户端和服务器之间的通信非常重要,它包含了请求和响应的各种信息,如请求方法、状态码、内容类型等,下面我们就来详细了解一下HTTP协议头的内容。

1. 请求行。

HTTP协议头的第一部分是请求行,它包含了请求方法、URL和协议版本。

请求方法通常有GET、POST、PUT、DELETE等,用来指定对资源的操作。

URL是请求的资源地址,协议版本一般是HTTP/1.1。

2. 请求头。

请求头包含了客户端向服务器传递的附加信息,比如用户代理、接受的内容类型、接受的语言类型等。

其中最常见的是用户代理,它告诉服务器客户端的类型和版本信息,以便服务器能够针对不同的客户端进行优化。

3. 空行。

请求头和请求体之间有一个空行,它用来分隔请求头和请求体,告诉服务器请求头的结束。

4. 请求体。

请求体包含了客户端向服务器传递的数据,比如表单数据、JSON数据等。

对于GET请求,请求体通常为空,而对于POST请求,请求体包含了客户端提交的数据。

5. 响应行。

HTTP协议头的另一部分是响应行,它包含了协议版本、状态码和状态消息。

状态码用来表示服务器对请求的处理结果,比如200表示成功,404表示未找到,500表示服务器内部错误等。

6. 响应头。

响应头包含了服务器向客户端传递的附加信息,比如内容类型、内容长度、缓存控制等。

其中最常见的是内容类型,它告诉客户端响应的数据类型,以便客户端能够正确地解析数据。

7. 空行。

响应头和响应体之间也有一个空行,它用来分隔响应头和响应体,告诉客户端响应头的结束。

8. 响应体。

响应体包含了服务器向客户端返回的数据,比如HTML页面、JSON数据、图片、视频等。

http请求包含哪几个部分(请求行、请求头、请求体)

http请求包含哪几个部分(请求行、请求头、请求体)

http请求包含哪⼏个部分(请求⾏、请求头、请求体)http协议报⽂1.请求报⽂(请求⾏/请求头/请求数据/空⾏)请求⾏求⽅法字段、URL字段和HTTP协议版本例如:GET /index.html HTTP/1.1get⽅法将数据拼接在url后⾯,传递参数受限请求⽅法:GET、POST、HEAD、PUT、DELETE、OPTIONS、TRACE、CONNECT请求头(key value形式)User-Agent:产⽣请求的浏览器类型。

Accept:客户端可识别的内容类型列表。

Host:主机地址请求数据post⽅法中,会把数据以key value形式发送请求空⾏发送回车符和换⾏符,通知服务器以下不再有请求头2.响应报⽂(状态⾏、消息报头、响应正⽂)状态⾏消息报头响应正⽂例如请求数据:1 GET/sample.jspHTTP/1.12 Accept:image/gif.image/jpeg,*/*3 Accept-Language:zh-cn4 Connection:Keep-Alive5 Host:localhost6 User-Agent:Mozila/4.0(compatible;MSIE5.01;Window NT5.0)7 Accept-Encoding:gzip,deflate89 username=jinqiao&password=1234第⼀⾏为http请求⾏,包含⽅法,URI 和http版本2-7为请求头,包含浏览器,主机,接受的编码⽅式和压缩⽅式第8⾏表⽰⼀个空⾏表⽰请求头结束这个空⾏是必须的第9⾏是数据体,⽐如是需要查询的信息。

http响应体由三部分组成:http响应由三个部分组成分别是状态⾏,响应头,响应正⽂。

状态⾏是由:HTTP-Version+Status-Code+Reason-Phrase⽐如:HTTP/1.1 200 ok分别表⽰http版本 + 状态码 + 状态代码的⽂本描述状态码:1xx指⽰信息–表⽰请求已接收,继续处理2xx成功–表⽰请求已被成功接收、理解、接受3xx重定向–要完成请求必须进⾏更进⼀步的操作。

http协议格式详解

http协议格式详解

http协议格式详解[HTTP协议格式详解]⼀、URI结构HTTP使⽤统⼀资源标识符(URI)来传输数据和建⽴连接。

URL(统⼀资源定位符)是⼀种特殊种类的URI,包含了⽤于查找的资源的⾜够的信息,我们⼀般常⽤的就是URL,⽽⼀个完整的URL包含下⾯⼏部分:1.协议部分该URL的协议部分为http:,表⽰⽹页⽤的是HTTP协议,后⾯的//为分隔符2.域名部分域名是,发送请求时,需要向DNS服务器解析IP。

如果为了优化请求,可以直接⽤IP作为域名部分使⽤3.端⼝部分域名后⾯的80表⽰端⼝,和域名之间⽤:分隔,端⼝不是⼀个URL的必须的部分。

如果端⼝是80,也可以省略不写4.虚拟⽬录部分从域名的第⼀个/开始到最后⼀个/为⽌,是虚拟⽬录的部分。

其中,虚拟⽬录也不是URL必须的部分,本例中的虚拟⽬录是/mix/5.⽂件名部分从域名最后⼀个/开始到?为⽌,是⽂件名部分;如果没有?,则是从域名最后⼀个/开始到#为⽌,是⽂件名部分;如果没有?和#,那么就从域名的最后⼀个/从开始到结束,都是⽂件名部分。

本例中的⽂件名是76.html,⽂件名也不是⼀个URL的必须部分,如果没有⽂件名,则使⽤默认⽂件名6.锚部分从#开始到最后,都是锚部分。

本部分的锚部分是first,锚也不是⼀个URL必须的部分7.参数部分从开始到#为⽌之间的部分是参数部分,⼜称为搜索部分、查询部分。

本例中的参数是name=kelvin&password=123456,如果有多个参数,各个参数之间⽤&作为分隔符。

⼆、RequestHTTP的请求包括:请求⾏(request line)、请求头部(header)、空⾏和请求数据四个部分组成。

get请求没有请求体。

三、Response1.状态⾏状态⾏由协议版本号、状态码、状态消息组成2.响应头响应头是客户端可以使⽤的⼀些信息,如:Date(⽣成响应的⽇期)、Content-Type(MIME类型及编码格式)、Connection(默认是长连接)等等3.空⾏响应头和响应体之间必须有⼀个空⾏4.响应体响应正⽂,本例中是键值对信息四、⼯作原理HTTP协议采⽤请求/响应模式,客户端向服务器发送⼀个请求报⽂,然后服务器响应请求。

【HTTP协议】---HTTP协议详解

【HTTP协议】---HTTP协议详解

【HTTP协议】---HTTP协议详解HTTP协议详解⼀.HTTP简介1.HTTP协议,即超⽂本传输协议(Hypertext transfer protocol)。

是⼀种详细规定了浏览器和万维⽹(WWW = World Wide Web)服务器之间互相通信的规则,通过因特⽹传送万维⽹⽂档的数据传送协议。

2.HTTP协议作为TCP/IP模型中应⽤层的协议也不例外。

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

如下图:3.HTTP是⼀个应⽤层协议,由请求和响应构成,是⼀个标准的客户端服务器模型。

HTTP是⼀个⽆状态的协议。

4.HTTP默认的端⼝号为80,HTTPS的端⼝号为443。

5.浏览⽹页是HTTP的主要应⽤,但是这并不代表HTTP就只能应⽤于⽹页的浏览。

HTTP是⼀种协议,只要通信的双⽅都遵守这个协议,HTTP就能有⽤武之地。

⽐如咱们常⽤的QQ,迅雷这些软件,都会使⽤HTTP协议(还包括其他的协议)。

⼆.HTTP特点1、简单快速:客户向服务器请求服务时,只需传送请求⽅法和路径。

由于HTTP协议简单,使得HTTP服务器的程序规模⼩,因⽽通信速度很快。

2、灵活:HTTP允许传输任意类型的数据对象。

正在传输的类型由Content-Type加以标记。

3、HTTP 0.9和1.0使⽤⾮持续连接:限制每次连接只处理⼀个请求,服务器处理完客户的请求,并收到客户的应答后,即断开连接。

HTTP 1.1使⽤持续连接:不必为每个web对象创建⼀个新的连接,⼀个连接可以传送多个对象,采⽤这种⽅式可以节省传输时间。

4、⽆状态:HTTP协议是⽆状态协议。

⽆状态是指协议对于事务处理没有记忆能⼒。

缺少状态意味着如果后续处理需要前⾯的信息,则它必须重传,这样可能导致每次连接传送的数据量增⼤。

另⼀⽅⾯,在服务器不需要先前信息时它的应答就较快。

5、⽀持B/S及C/S模式。

http协议请求响应报文格式及状态码详解

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的结尾与请求参数的开始,传递参数长度受限制。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

对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头域Date头域表示消息发送的时间,时间的描述格式由rfc822定义。

例如,Date:Mon,31Dec200104:25:57GMT。

Date描述的时间表示世界标准时,换算成本地时间,需要知道用户所在的时区。

Pragma头域Pragma头域用来包含实现特定的指令,最常用的是Pragma:no-cache。

在HTTP/1.1协议中,它的含义和Cache- Control:no-cache相同。

请求消息请求消息的第一行为下面的格式:MethodSPRequest-URISPHTTP-VersionCRLFMethod 表示对于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-Range、If-Unmodified-Since、Max-Forwards、Proxy-Authorization、Range、Referer、User-Agent。

对请求头域的扩展要求通讯双方都支持,如果存在不支持的请求头域,一般将会作为实体头域处理。

典型的请求消息:GET download.microtool.de:80/somedata.exeHost: download.microtool.deAccept:*/*Pragma: no-cacheCache-Control: no-cacheReferer: download.microtool.de/User-Agent:Mozilla/4.04[en](Win95;I;Nav)Range:bytes=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-PhraseCRLFHTTP -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.0200OKDate:Mon,31Dec200104:25:57GMTServer:Apache/1.3.14(Unix)Content-type:text/htmlLast-modified:Tue,17Apr200106:46:28GMTEtag:"a030f020ac7c01:1e9f"Content-length:39725426Content-range:bytes5549/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实体头用于指定整个实体中的一部分的插入位置,他也指示了整个实体的长度。

相关文档
最新文档