HTTP相关知识

HTTP三次握手

(1)浏览器向服务器发出请求,握手第一步

(2)服务器回应浏览器的请求,并要求确认,握手第二步

(3)浏览器回应服务器的确认,连接成功,握手第三步

(4)浏览器发出一个页面HTTP GET请求。。。。。。

 

HTTP Header 参数说明

Requests Header | Http Header

Header解释示例
Accept

指定客户端能够接收的内容类型

客户端可识别的响应内容类型列表;星号*用于按范围将类型分组。*/*表示可接受全部类型,type/*表示可接受type类型的所有子类型

Accept: text/plain, text/html

Accept: image/webp,image/apng,image/*,*/*;q=0.8

Accept-Charset浏览器可以接受的字符编码集Accept-Charset: iso-8859-5
Accept-Encoding指定浏览器可以支持的web服务器返回内容压缩编码类型,客户端可接受的编码压缩格式Accept-Encoding: compress, gzip
Accept-Language浏览器可接受的语言,客户端支持的语言

Accept-Language: en,zh

Accept-Language: zh-CN,zh;q=0.9

Accept-Ranges可以请求网页实体的一个或者多个子范围字段Accept-Ranges: bytes
AuthorizationHTTP授权的授权证书Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Cache-Control指定请求和响应遵循的缓存机制Cache-Control: no-cache
Connection

表示是否需要持久连接。(HTTP 1.1默认进行持久连接)

close表示使用短连接,Keep-Alive表示客户端支持持久连接

Connection: close,Connection: keep-alive
Cookie存储在客户端的扩展字段,HTTP请求发送时,会把保存在该请求域名下的所有cookie值一起发送给web服务器Cookie: $Version=1; Skin=new;
Content-Length请求的内容长度Content-Length: 348
Content-Type请求的与实体对应的MIME信息,标识请求内容的类型

Content-Type:application/x-www-form-urlencoded; charset=UTF-8

Content-Type:text/html;charset=utf-8

Date请求发送的日期和时间Date: Tue, 15 Nov 2010 08:12:31 GMT
Expect请求的特定的服务器行为Expect: 100-continue
From发出请求的用户的EmailFrom: user@email.com
Host指定请求的服务器的域名和端口号,允许多个域名绑定同一IP地址。HTTP/1.1请求必须指定Host,否则服务器会返回400状态码

Host: www.zcmhi.com

Host: www.xinhuanet.com

If-Match只有请求内容与实体相匹配才有效If-Match: “737060cd8c284d8af7ad3082f209582d”
If-Modified-Since

如果请求的部分在指定时间之后被修改则请求成功,未被修改则返回304代码,

如果请求消息包含If-Modified-Since标题域,GET方法的语法就变成“条件GET”,即“(conditional GET)”。 条件GET方法可以对指定资源进行判断,如果它在If-Modified-Since标题域中的指定日期后发生了更新,才启动传输,否则不传输。这种条件 GET允许被缓存的实体在不必经过多次请求或不必要的数据传输就能进行刷新,从而有助于降低网络负载

If-Modified-Since: Sat, 29 Oct 2010 19:43:31 GMT
If-None-Match如果内容未改变返回304代码,参数为服务器先前发送的Etag,与服务器回应的Etag比较判断是否改变

If-None-Match: “737060cd8c284d8af7ad3082f209582d”

If-None-Match: W/"5c669adf-b3e9"

If-Range如果实体未改变,服务器发送客户端丢失的部分,否则发送整个实体。参数也为EtagIf-Range: “737060cd8c284d8af7ad3082f209582d”
If-Unmodified-Since只在实体在指定时间之后未被修改才请求成功If-Unmodified-Since: Sat, 29 Oct 2010 19:43:31 GMT
Max-Forwards限制信息通过代理和网关传送的时间Max-Forwards: 10
Pragma用来包含实现特定的指令Pragma: no-cache
Proxy-Authorization连接到代理的授权证书Proxy-Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Range只请求实体的一部分,指定范围Range: bytes=500-999
Referer先前网页的地址,当前请求网页紧随其后,即来路,Referer用以告诉服务器该请求来自于哪个URL,可以用追踪用户的WEB访问路径Referer: http://www.zcmhi.com/archives/71.html
TE客户端愿意接受的传输编码,并通知服务器接受接受尾加头信息TE: trailers,deflate;q=0.5
Upgrade向服务器指定某种传输协议以便服务器进行转换(如果支持)Upgrade: HTTP/2.0, SHTTP/1.3, IRC/6.9, RTA/x11
User-Agent客户端浏览器信息,包含发出请求的用户信息

User-Agent: Mozilla/5.0 (Linux; X11)

User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3554.0 Safari/537.36

Via通知中间网关或代理服务器地址,通信协议Via: 1.0 fred, 1.1 nowhere.com (Apache/1.1)
Warning关于消息实体的警告信息Warn: 199 Miscellaneous warning

X-Requested-With

X-Requested-With头域是用来判断一个请求是传统的HTTP请求,还是Ajax请求,为 null,则为同步请求,XMLHttpRequest 则为 Ajax 请求X-Requested-With:XMLHttpRequest
   

Responses 部分 | Http Header

Header解释示例
Accept-Ranges表明服务器是否支持指定范围请求及哪种类型的分段请求Accept-Ranges: bytes
Age从原始服务器到代理缓存形成的估算时间(以秒计,非负)Age: 12
CACHE CACHE: TCP_HIT
CC_CACHE CC_CACHE: TCP_IMS_HIT
Connectionclose表示使用短连接,Keep-Alive表示客户端支持持久连接Connection: keep-alive
Allow对某网络资源的有效的请求行为,不允许则返回405Allow: GET, HEAD
Cache-Control告诉所有的缓存机制是否可以缓存及哪种类型Cache-Control: no-cache
Content-Encodingweb服务器支持的返回内容压缩编码类型Content-Encoding: gzip
Content-Language响应体的语言Content-Language: en,zh
Content-Length响应体的长度Content-Length: 348
Content-Location请求资源可替代的备用的另一地址Content-Location: /index.htm
Content-MD5返回资源的MD5校验值Content-MD5: Q2hlY2sgSW50ZWdyaXR5IQ==
Content-Range在整个返回体中本部分的字节位置Content-Range: bytes 21010-47021/47022
Content-Type返回内容的MIME类型Content-Type: text/html; charset=utf-8
Date原始服务器消息发出的时间Date: Tue, 15 Nov 2010 08:12:31 GMT
ETag请求变量的实体标签的当前值ETag: “737060cd8c284d8af7ad3082f209582d”
Expires响应过期的日期和时间,在没有失效之前,代理可直接从缓存中返回以前的响应结果Expires: Thu, 01 Dec 2010 16:00:00 GMT
Powered-By-ChinaCache Powered-By-ChinaCache: HIT from CHN-DU-f-3H1
Last-Modified请求资源的最后修改时间Last-Modified: Tue, 15 Nov 2010 12:45:26 GMT
Location用来重定向接收方到非请求URL的位置来完成请求或标识新的资源Location: http://www.zcmhi.com/archives/94.html
Pragma包括实现特定的指令,它可应用到响应链上的任何接收方Pragma: no-cache
Proxy-Authenticate它指出认证方案和可应用到代理的该URL上的参数Proxy-Authenticate: Basic
refresh应用于重定向或一个新的资源被创造,在5秒之后重定向(由网景提出,被大部分浏览器支持)Refresh: 5; url=http://www.atool.org/httptest.php
Retry-After如果实体暂时不可取,通知客户端在指定时间之后再次尝试Retry-After: 120
Serverweb服务器软件名称,服务器用来处理请求的软件信息及版本信息

 

Server: Apache/1.3.27 (Unix) (Red-Hat/Linux)

Server: nginx/1.13.11

Set-Cookie设置Http CookieSet-Cookie: UserID=JohnDoe; Max-Age=3600; Version=1
Trailer指出头域在分块传输编码的尾部存在Trailer: Max-Forwards
Transfer-Encoding文件传输编码Transfer-Encoding:chunked
Vary告诉下游代理是使用缓存响应还是从原始服务器请求,标识不可缓存的请求头列表

Vary: *

Vary: Accept-Encoding

Via告知代理客户端响应是通过哪里发送的Via: 1.0 fred, 1.1 nowhere.com (Apache/1.1)
X-Cachesquid代理的自定义header,用来记录缓存的命中与否(Squid 是 Linux/Unix 平台下最为流行的高性能免费应用层代理服务器)X-Cache: MISS from x-s-v-19
Warning警告实体可能存在的问题Warning: 199 Miscellaneous warning
WWW-Authenticate表明客户端请求实体应该使用的授权方案WWW-Authenticate: Basic

 

六万字是一本书的篇幅,关于HTTP知识需求较为广泛深入。HTTP是超文本传输协议(Hypertext Transfer Protocol)的缩写,是用于浏览器和Web服务器之间进行通信的协议。 首先,六万字的重点将会涵盖HTTP的基本概念和原理。这包括HTTP的发展历史、URL(Uniform Resource Locator)的结构和作用、HTTP请求和响应的格式、HTTP状态码的含义等。 其次,六万字将介绍HTTP的工作机制。这包括客户端与服务器的交互过程,包括DNS解析、TCP三次握手、建立持久连接、HTTP报文的传输等。同时也会涉及到HTTPS(HTTP Secure)的使用和原理以保障通信的安全性。 此外,六万字还会探讨HTTP的特性和功能。例如,缓存机制的应用、Cookie和Session的使用、重定向、表单上传等高级特性的实现原理和应用场景。 还有,六万字将介绍HTTP的性能优化和相关技术。这包括使用CDN(内容分发网络)、使用压缩技术、HTTP/2和HTTP/3协议的特性和优势等。 最后,六万字还会指导读者如何调试和优化HTTP请求。这包括使用开发者工具、抓包工具、监控工具等进行调试,优化请求时间、减少响应大小等技巧。 总之,六万字的文章将全面介绍HTTP的基本概念、工作机制、特性和功能,以及性能优化和调试方法。对于开发者、运维人员和网络技术爱好者来说,这本书是学习和应用HTTP的必备知识
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值