HTTP3-请求

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/attack_breast/article/details/83240429

HTTP请求

 

Request 消息分为3部分:第一部分叫Request line,第二部分叫Request header,第三部分是Request body,header和body之间有个空行。第一行中的Method表示请求方法,比如"POST","GET",Path-to-resoure表示请求的资源,Http/version-number表示HTTP协议的版本号。当使用的是"GET"方法的时候,body是为空的。

常用请求头

Accept

作用:标识客户端浏览器端可以接受的媒体类型,例如:Accept:text/html代表浏览器可以接受服务器返回类型为text/html也就是我们常说的html文档,如果服务器无法返回text/html类型的数据,则服务器应该返回一个406错误(non acceptable)。通配符*代表任意类型,例如Accept:*/*代表浏览器可以处理所有类型。(一般浏览器发给服务器都是发这个)

Accept-Encoding

作用:标识客户端浏览器申明自己接收的编码方式(你可以理解为ZIP/TAR/TAR.GZ/GZIP,同一个文件你去怎么编码它),包括特定的压缩方法、是否支持压缩、支持什么压缩方法,例如:Accept-Encoding: zh-CN,zh;q=0.8

Accept-Language

作用:标识客户端浏览器申明自己接收的语言。语言跟字符集的区别,中文是语言,中文有多种字符集,比如UTF8,GB2312,GBK等等。例如:Accept-Language: en-us

Accept-Charset

可接受的字符集,例如:Accept-Charset: utf-8

Authorization

用于表示HTTP协议中需要认证资源的认证信息,例如:Authorization: BasicOSdjJGRpbjpvcGVuIANlc2SdDE==

Content-Length

以8进制表示的请求体的长度,例如:Content-Length: 348

Content-Type

请求体的MIME类型(用于POST和PUT请求中)例如:Content-Type: application/x-www-form-urlencoded

Date

发送该消息的日期和时间(以RFC 7231中定义的"HTTP日期"格式来发送),例如:Date: Dec, 26 Dec 2015 17:30:00 GMT

Expect

表示客户端要求服务器做出特定的行为,例如:Expect: 100-continue

From

发起此请求的用户的邮件地址,例如:From: [email protected]

Connection

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

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

Host

作用:请求报头域主要用于指定被请求资源的主机和端口号,它通常从HTTP URL中提取出来的,例如: 我们在浏览器中输入:http://www.hzau.edu.cn,浏览器发送的请求消息中就会包含Host请求报头域,如下:Host:www.hzau.edu.cn。此处使用缺省端口号80,若指定了端口号则变成为Host:指定端口号。

Referer

当浏览器向web服务器发送请求的时候,一般会带上Referer告诉服务器我是从哪个页面链接过来的,服务器籍此可以获得一些信息用于处理。比如从我主页上链接到一个朋友那里,他的服务器就能够从HTTP Referer中统计出每天有多少用户点击我主页上的链接访问他的网站。

User-Agent

作用:告诉HTTP服务器客户端使用的操作系统和浏览器的名称和版本。我们上网登陆论坛的时候,往往会看到一些欢迎信息,其中列出了你的操作系统的名称和版本、你所使用的浏览器的名称和版本。这往往让很多人感到很神奇,实际上,服务器应用程序就是从User-Agent这个请求报头域中获取到这些信息User-Agent请求报头域允许客户端将它的操作系统、浏览器和其它属性告诉服务器。例如: User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; CIBA; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET4.0C; InfoPath.2; .NET4.0E)。

Cache-Control

用来指定当前的请求/回复中的,是否使用缓存机制。

表示我们网页的缓存控制是由HTTP头中的“Cache-control”来实现的,常见值有private、no-cache、max-age、must-revalidate等,默认为private。这几种值的作用是根据重新查看某一页面时不同的方式来区分的:(从字面意思上理解网页访问服务器的次数)

(1)、打开新窗口

值为private、no-cache、must-revalidate,那么打开新窗口访问时都会重新访问服务器。如果指定了max-age值(单位为秒),那么在此值内的时间里就不会重新访问服务器,例如:Cache-control: max-age=5(表示当访问此网页后的5秒内再次访问不会去服务器)

(2)、在地址栏回车

值为private或must-revalidate则只有第一次访问时会访问服务器,以后就不再访问。

值为no-cache,那么每次都会访问。

值为max-age,则在过期之前不会重复访问。

(3)、按后退按扭

值为private、must-revalidate、max-age,则不会重访问。

值为no-cache,则每次都重复访问。

(4)、按刷新按扭

无论为何值,都会重复访问。

Cookie

Cookie是用来存储一些用户信息以便让服务器辨别用户身份的,比如cookie会存储一些用户的用户名和密码,当用户登录后就会在客户端产生一个cookie来存储相关信息,这样浏览器通过读取cookie的信息去服务器上验证并通过后会判定你是合法用户从而允许查看相应网页。当然cookie里面的数据不仅仅是上述范围,还有很多信息可以存储是cookie里面,比如sessionid等。

If-Modified-Since

作用:把浏览器端缓存页面的最后修改时间发送到服务器去,服务器会把这个时间与服务器上实际文件的最后修改时间进行对比。如果时间一致,那么返回304,客户端就直接使用本地缓存文件。如果时间不一致,就会返回200和新的文件内容。客户端接到之后,会丢弃旧文件,把新文件缓存起来,并显示在浏览器中。例如:Mon, 17 Aug 2015 12:03:33 GMT

If-None-Match

作用:If-None-Match和ETag一起工作,工作原理是在HTTP Response中添加ETag信息。 当用户再次请求该资源时,将在HTTP Request 中加入If-None-Match信息(ETag的值)。如果服务器验证资源的ETag没有改变(该资源没有更新),将返回一个304状态告诉客户端使用本地缓存文件。否则将返回200状态和新的资源和Etag。使用这样的机制将提高网站的性能,例如: If-None-Match: W/"3119-1437038474000"

If-Range

如果该实体未被修改过则向返回所缺少的那一个或多个部分,否则返回整个新的实体,例如:If-Range: "9jd00cdj34pss9ejqiw39d82f20d0ikd"

If-Unmodified-Since

仅当该实体自某个特定时间以来未被修改的情况下才发送回应。例如:If-Unmodified-Since: Dec, 26 Dec 2015 17:30:00 GMT

Max-Forwards

限制该消息可被代理及网关转发的次数,例如:Max-Forwards: 10

Origin

发起一个针对跨域资源共享的请求(该请求要求服务器在响应中加入一个Access-Control-Allow-Origin的消息头,表示访问控制所允许的来源)。例如:Origin: http://www.itbilu.com

Pragma

与具体的实现相关,这些字段可能在请求/回应链中的任何时候产生。例如:Pragma: no-cache

Proxy-Authorization

用于向代理进行认证的认证信息,例如:Proxy-Authorization: Basic IOoDZRgDOi0vcGVuIHNlNidJi2==

Range

表示请求某个实体的一部分,字节偏移以0开始。例如:Range: bytes=500-999

TE

浏览器预期接受的传输时的编码方式:可使用回应协议头Transfer-Encoding中的值(还可以使用"trailers"表示数据传输时的分块方式)用来表示浏览器希望在最后一个大小为0的块之后还接收到一些额外的字段。例如:TE: trailers,deflate。

猜你喜欢

转载自blog.csdn.net/attack_breast/article/details/83240429