HTTP协议的头信息详解

合集下载

HTTP响应头部

HTTP响应头部

HTTP响应头部HTTP(超文本传输协议)是用于在Web浏览器和Web服务器之间传输数据的协议。

在HTTP请求和响应过程中,头部是重要的组成部分之一,它包含了关于请求或响应的元数据信息。

本文将介绍HTTP响应头部的作用和常见的头部字段。

一、HTTP响应头部的作用HTTP响应头部是服务器在接收到客户端(浏览器)发送的请求后,向客户端返回的一部分响应数据。

它在传输过程中携带了一些元数据信息,用于指示服务器的处理结果、响应的内容类型、缓存控制等。

客户端接收到HTTP响应头部后,根据其中的信息进行相应的处理。

以下是HTTP响应头部的常见字段及其作用。

二、常见的HTTP响应头部字段1. Content-TypeContent-Type字段用于指定返回内容的类型。

它告诉客户端如何解析响应数据。

常见的值包括text/html(HTML文档)、text/css(CSS文件)、application/json(JSON数据)等。

2. Content-LengthContent-Length字段用于指定响应内容的字节数。

客户端可以根据该字段判断响应数据的大小,以便正确接收和处理。

3. ServerServer字段用于指定服务器软件的名称和版本号。

客户端可以根据该字段了解服务器的类型和版本信息。

4. Set-CookieSet-Cookie字段用于指定要在客户端保存的Cookie信息。

服务器通过设置Cookie,可以在客户端与服务器之间保持会话状态。

5. ExpiresExpires字段用于指定响应内容的过期时间。

客户端可以根据该字段来判断是否需要发送新的请求获取最新的内容。

6. LocationLocation字段用于指定重定向的URL。

当服务器需要将客户端重定向到另一个URL时,会在响应头部中设置该字段。

以上是一些常见的HTTP响应头部字段,它们在HTTP协议中被广泛应用于Web开发和网络通信过程中。

三、HTTP响应头部的重要性HTTP响应头部对于客户端和服务器之间的通信至关重要。

HTTP协议中的请求头和响应头

HTTP协议中的请求头和响应头

HTTP协议中的请求头和响应头HTTP协议是互联网中最重要的协议之一,它是实现Web服务的基础。

在HTTP通信过程中,客户端与服务器之间需要交换大量的信息,而其中的请求头和响应头则是最重要的两个部分。

本文将针对HTTP协议中的请求头和响应头进行详细介绍,探究其基本原理、常见类型以及使用方法,帮助读者更好地理解HTTP 协议。

HTTP请求头HTTP请求头通常包含以下内容:1. 请求的方法: HTTP协议规定了几种请求方法,包括GET、POST、PUT、DELETE等。

客户端在发送请求时需要指定请求方法,服务器接收到请求后便根据不同的方法处理请求。

2. 请求的URL:请求的URL通常指明了客户端请求数据的地址,包括主机名、端口号、路径等。

客户端通常通过浏览器输入URL来发起HTTP请求。

3. 请求的HTTP版本: HTTP标准目前有1.0和1.1两个版本,通常请求头中会包含HTTP版本信息。

4. 请求头部字段:请求头中可以包含多个字段,用于提供额外的请求信息,例如用户代理、接受的编码方式等。

5. 请求正文:请求体中包含了客户端向服务器传递的数据,通常用于提交表单数据或上传文件等操作。

HTTP响应头HTTP响应头通常包含以下内容:1. HTTP版本:响应头中会包含HTTP版本信息,以便客户端与服务器进行协议匹配。

2. 状态码: HTTP响应中的状态码用于表明服务器对请求的处理结果。

常见的状态码包括200表示成功、404表示未找到资源、500表示服务器内部错误等。

3. 响应头部字段:响应头中可以包含多个字段,用于提供响应信息,例如数据内容类型、服务器软件等。

4. 响应体:响应体中包含了由服务器返回给客户端的数据,可以是HTML页面、图片、视频等内容。

常见的请求头与响应头1. User-Agent:请求头中的User-Agent字段用于标明客户端浏览器的代理信息,例如Chrome、Safari等。

服务器可以利用该字段进行浏览器兼容性检测、广告投放等操作。

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

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, */*”。

请求头和请求体的概念

请求头和请求体的概念

请求头和请求体的概念在网络通信中,请求头(Request Header)和请求体(Request Body)是HTTP 协议中的两个重要概念。

它们用于在客户端向服务器发送请求时,传递相关信息和数据。

下面将详细介绍请求头和请求体的概念及其作用:1.请求头(Request Header)请求头是HTTP请求中的一部分,包含了客户端向服务器发送请求时的各种元数据和配置信息。

它通常由一系列的键值对组成,每个键值对表示一个具体的属性或选项。

以下是一些常见的请求头字段及其作用:-Host:表示请求的目标主机名和端口号。

-User-Agent:标识发起请求的客户端软件、操作系统和版本信息。

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

-Content-Type:指定请求体中的数据格式类型,如JSON、XML等。

-Authorization:提供身份验证凭证,用于访问需要授权的资源。

-Cookie:包含之前服务器发送的Cookie信息,用于保持会话状态。

-Referer:标识请求来源页面的URL。

-Cache-Control:控制缓存行为的指令,如是否使用缓存、缓存过期时间等。

请求头的作用是提供必要的信息给服务器,以便服务器理解和处理客户端的请求。

它可以告诉服务器请求的目标是什么,客户端的身份是谁,以及客户端期望接收到的响应格式等。

通过适当设置请求头,可以实现更加精确和定制化的请求。

2.请求体(Request Body)请求体是HTTP请求中的可选部分,用于在客户端向服务器发送数据或信息。

它通常用于POST、PUT等需要发送数据的请求方法中。

请求体可以包含各种类型的数据,如表单数据、JSON数据、XML数据等。

以下是一些常见的请求体数据类型:-表单数据(Form Data):以键值对形式组织的数据,常用于提交表单数据。

-JSON数据:使用JSON格式组织的数据,常用于传输结构化数据。

-XML数据:使用XML格式组织的数据,常用于传输复杂的数据结构。

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

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协议在互联网通信中扮演着重要的角色,它定义了Web浏览器如何与Web服务器进行通信。

在HTTP协议中,安全头部字段是保护通信安全性的关键元素之一。

本文将重点讨论HTTP协议中的安全头部字段及其功能,以及如何使用这些字段来增强网络通信的安全性。

一、引言HTTP协议是一种无状态的协议,即服务器不会保存关于客户端的任何信息。

然而,在互联网时代,隐私和数据安全性变得尤为重要。

为了保障用户隐私和数据的安全,HTTP协议不断发展和完善,引入了一系列的安全头部字段。

二、HTTPS协议HTTPS协议是HTTP协议的安全版本。

HTTPS通过使用SSL/TLS加密协议来保护数据的安全传输。

它使用了公钥加密和对称加密的组合,使用数字证书对服务器进行身份验证,确保通信双方的身份,并对传输的数据进行加密。

三、安全头部字段1. Content-Security-Policy (CSP)Content-Security-Policy用于定义允许加载的资源,有效地防止跨站脚本攻击(XSS)、点击劫持等安全威胁。

通过设置CSP,网站可以控制资源的加载,包括脚本、样式、图片等,只允许指定的域名加载资源,从而阻止恶意脚本的注入。

2. X-XSS-ProtectionX-XSS-Protection是浏览器提供的一种安全机制,可以防止跨站脚本攻击(XSS)。

当浏览器检测到有恶意脚本时,会自动过滤掉该脚本,保护用户的隐私和数据安全。

3. X-Content-Type-OptionsX-Content-Type-Options是一种安全头部字段,用于禁止浏览器对响应的Content-Type进行MIME类型的嗅探。

通过设置该字段为"nosniff",可以防止浏览器将响应的Content-Type解析为非预期的类型,减少安全风险。

4. Strict-Transport-Security (HSTS)Strict-Transport-Security是一种安全头部字段,可以强制浏览器将HTTP请求自动转换为HTTPS请求,从而提供了一定程度的保护。

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请求头
Accept:客户机通过这个头,告诉服务器,它支持哪些数据类型
Accept-Charset::客户机通过这个头,告诉服务器,它支持的编码
Acceptቤተ መጻሕፍቲ ባይዱEncoding: 客户机通过这个头,告诉服务器,支持哪种数据压缩格式
Accept-Language: 客户机采用的是哪个语言
Connection:表示是否需要持久连接。
HTTP响应头
Location:服务器通过这个头告诉浏览器去访问哪个页面,这个头通常配合302状态码使用
server: 服务器通过这个头,告诉浏览器服务器类型
Content-Encoding: 服务器通过这个头告诉浏览器,回送的数据采用的压缩格式
ETag: W/"7777-1242234904000":缓存相关的头,为每一个资源配一个唯一的编号
Expires: 0 服务器通过这个头,告诉浏览器把会送的资源缓存多长时间,-1或0,则是不缓存
Cache-Control: no-cache
Pragma: no-cache
这三个头组合使用,让浏览器不要缓存数据
Content-Length: 服务器通过这个头告诉浏览器,回送的数据的大小长度
Content-Type: 服务器通过这个头告诉浏览器,回送数据的类型
Last-Modified: 服务器通过这个头告诉浏览器,缓存资源的最后修改时间
Refresh:服务器通过这个头告诉浏览器,定时刷新网页
Content-Disposition: attachment; filename=aaa.zip:服务器通过这个头告诉浏览器,以下载方式打开数据

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协议header标头详解

HTTP协议header标头详解

HTTP协议header标头详解本⽂根据RFC2616(HTTP/1.1规范),参考通常HTTP消息包括客户机向服务器的请求消息和服务器向客户机的响应消息。

这两种类型的消息由⼀个起始⾏,⼀个或者多个头域,⼀个只是头域结束的空⾏和可选的消息体组成。

HTTP的头域包括通⽤头,请求头,响应头和实体头四个部分。

每个头域由⼀个域名,冒号(:)和域值三部分组成。

域名是⼤⼩写⽆关的,域值前可以添加任何数量的空格符,头域可以被扩展为多⾏,在每⾏开始处,使⽤⾄少⼀个空格或制表符。

通⽤头域 (通⽤⾸部)通⽤头域包含请求和响应消息都⽀持的头域,提供了与报⽂相关的最基本的信息,通⽤头域包含Connection 允许客户端和服务器指定与请求/响应连接有关的选项Date 提供⽇期和时间标志,说明报⽂是什么时间创建的MIME-Version 给出发送端使⽤的MIME版本Trailer 如果报⽂采⽤了分块传输编码(chunked transfer encoding) ⽅式,就可以⽤这个⾸部列出位于报⽂拖挂(trailer)部分的⾸部集合Transfer-Encoding 告知接收端为了保证报⽂的可靠传输,对报⽂采⽤了什么编码⽅式Upgrade 给出了发送端可能想要"升级"使⽤的新版本和协议Via 显⽰了报⽂经过的中间节点(代理,⽹嘎un)应答头说明Allow服务器⽀持哪些请求⽅法(如GET、POST等)。

Content-Encoding ⽂档的编码(Encode)⽅法。

只有在解码之后才可以得到Content-Type头指定的内容类型。

利⽤gzip压缩⽂档能够显著地减少HTML⽂档的下载时间。

Java的GZIPOutputStream可以很⽅便地进⾏gzip压缩,但只有Unix上的Netscape和Windows上的IE 4、IE 5才⽀持它。

因此,Servlet应该通过查看Accept-Encoding头(即request.getHeader("Accept- Encoding"))检查浏览器是否⽀持gzip,为⽀持gzip的浏览器返回经gzip压缩的HTML页⾯,为其他浏览器返回普通页⾯。

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(Hypertext Transfer Protocol)是一种用于传输超文本的应用层协议。

它是Web通信的基础,通过在客户端和服务器之间传递请求和响应来实现数据交换。

本文将详细介绍HTTP协议的格式,包括请求消息和响应消息的结构以及各个字段的含义。

一、请求消息格式HTTP请求消息由三个部分组成:请求行、请求头和请求体。

1. 请求行请求行包含了请求的方法、URI和HTTP版本。

格式如下:```<方法> <URI> HTTP/<版本>```常见的HTTP方法有GET、POST、PUT、DELETE等,URI表示请求的资源路径,版本表示HTTP协议的版本号。

2. 请求头请求头包含了请求的各种信息,以键值对的形式表示。

常见的请求头字段有:- Host:表示请求的主机名。

- User-Agent:表示客户端的用户代理。

- Accept:表示客户端能够接受的响应内容类型。

- Content-Type:表示请求体的内容类型。

- Cookie:表示客户端的Cookie信息。

- Authorization:表示客户端的身份验证信息。

请求头字段可以根据具体需求进行添加和修改,以满足请求的要求。

3. 请求体请求体是可选的,用于传递请求的数据。

常见的请求体格式有:- application/x-www-form-urlencoded:用于提交表单数据。

- multipart/form-data:用于上传文件。

- application/json:用于提交JSON格式的数据。

二、响应消息格式HTTP响应消息也由三个部分组成:状态行、响应头和响应体。

1. 状态行状态行包含了响应的HTTP版本、状态码和状态描述。

格式如下:```HTTP/<版本> <状态码> <状态描述>```常见的状态码有200表示成功,404表示资源未找到,500表示服务器内部错误等。

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数据、图片、视频等。

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

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-VersionCRLFMethodPublic 指示响应可被任何缓存区缓存。

Private 指示对于单息中发送将使得请求和响应消息都不使用缓存。

max-age时间加上指定时间的响应。

max-stale 指示客户机可以接收道用户所在的时区。

Pragma 头域 Pragma 头域用来同。

请求消息 请求消息的第一行为下面的格式:示对于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-SinceMax-Forwards 、Proxy-Authorization 、Range 、Referer 、User-Agent 。

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

典型的请求消息:GEThttp://download.microtool.de:80/somedata.exeHost: download.microtool.deAccept:*/*Pragma: no-cacheCache-Control: no-cacheReferer: http://download.microtool.de/User-Agent:Mozilla/4.04[en](Win95;I;Nav)Range:bytes=554554- 上例第一行表示 HTTP 客户端(可 能是浏览器、下载程序)通过 GET 方法获得指定 URL 下的文件。

棕色的部分表示请求头域的信息,绿色的部分表示通Intenet 主机和端口号,必须表示请求 url 的原始服务器或网关的位置。

HTTP/1.1 请求必须包含主机头域,否则系统会客户端指定请求 uri 的源资源地址,这可以允许服务器生成 回退链表,可用来登陆、优化 cache 等。

他也允许废除的或错误的连接由于维护的目的被 追踪。

如果请求的 uri 没有自己的 uri 地址, Referer 不能被发送。

如果指定的是部分Range 头域可以请求实体的一个或者多个子范围。

例如, 表示头 500 个字节: bytes=0-499表示第二个 500 字节: bytes=500-999表示最后 500 个字节: bytes=-500用头部分。

Host 头域 Host 头域指定请求资源的以 400 状态码返回。

Referer 头域 Referer 头域允许uri 地址,则此地址应该是一个相对地址。

Range 头域表示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:bytes554554-40279979/40279980 行表示 HTTP 服务端响应一个 GET 方法。

棕色的部分表示响应头域的信息,绿色的部分表示通用头部分,红色的部应头 Server 响应头包含处理请求的原始服务器的软件信息。

此域能包含多个产品标识和注释,产品标识一般按照重要性 实体信息一般由实体头域和实体组成。

实体头域包含关于实 体的原信息,实体头包括 Allow 、 Content- Base 、Content-Encoding 、Content-Language 、 Content-Length 、 Content-Location 、Content-MD5 、 Content-Range 、应头 域,一般将会作为实体头域处理。

典型的响应消息:上例第分表示实体头域的信息。

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

Server 响 排序。

实体 请求消息和响应消息都可以包含实体信息,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实体头用于指定整个实体中的一部分的插入位置,他也指示了整个实体的长度。

相关文档
最新文档