HTTP协议详解模板Word文档格式.docx

上传人:b****2 文档编号:14601616 上传时间:2022-10-23 格式:DOCX 页数:18 大小:806KB
下载 相关 举报
HTTP协议详解模板Word文档格式.docx_第1页
第1页 / 共18页
HTTP协议详解模板Word文档格式.docx_第2页
第2页 / 共18页
HTTP协议详解模板Word文档格式.docx_第3页
第3页 / 共18页
HTTP协议详解模板Word文档格式.docx_第4页
第4页 / 共18页
HTTP协议详解模板Word文档格式.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

HTTP协议详解模板Word文档格式.docx

《HTTP协议详解模板Word文档格式.docx》由会员分享,可在线阅读,更多相关《HTTP协议详解模板Word文档格式.docx(18页珍藏版)》请在冰豆网上搜索。

HTTP协议详解模板Word文档格式.docx

keep-alive区分

什么是HTTP协议

协议是指计算机通信网络中两台计算机之间进行通信所必需共同遵守要求或规则,超文本传输协议(HTTP)是一个通信协议,它许可将超文本标识语言(HTML)文档从Web服务器传送到用户端浏览器

现在我们使用是HTTP/1.1版本

Web服务器,浏览器,代理服务器

当我们打开浏览器,在地址栏中输入URL,然后我们就看到了网页。

原理是怎样呢?

实际上我们输入URL后,我们浏览器给Web服务器发送了一个Request,Web服务器接到Request后进行处理,生成对应Response,然后发送给浏览器,浏览器解析Response中HTML,这么我们就看到了网页,过程以下图所表示

我们Request有可能是经过了代理服务器,最终才抵达Web服务器。

过程以下图所表示

代理服务器就是网络信息中转站,有什么功效呢?

1.提升访问速度,大多数代理服务器都有缓存功效。

2.突破限制,也就是翻墙了

3.隐藏身份。

URL详解

URL(UniformResourceLocator)地址用于描述一个网络上资源, 

基础格式以下

schema:

//host[:

port#]/path/.../[?

query-string][#anchor]

scheme 

指定低层使用协议(比如:

http,https,ftp)

host 

HTTP服务器IP地址或者域名

port# 

HTTP服务器默认端口是80,这种情况下端口号能够省略。

假如使用了别端口,必需指明,比如:

8080/

path 

访问资源路径

query-string 

发送给http服务器数据

anchor- 

URL一个例子

Schema:

http

host:

.com

path:

/sj/test/test.aspx

QueryString:

name=sviergn&

x=true

Anchor:

stuff

HTTP协议是无状态

http协议是无状态,同一个用户端这次请求和上次请求是没有对应关系,对http服务器来说,它并不知道这两个请求来自同一个用户端。

为了处理这个问题,Web程序引入了Cookie机制来维护状态.

打开一个网页需要浏览器发送很数次Request

1.当你在浏览器输入URL时候,浏览器发送一个Request去获取html. 

服务器把Response发送回给浏览器.

2.浏览器分析Response中HTML,发觉其中引用了很多其她文件,比如图片,CSS文件,JS文件。

3.浏览器会自动再次发送Request去获取图片,CSS文件,或者JS文件。

4.等全部文件都下载成功后。

网页就被显示出来了。

HTTP消息结构

先看Request消息结构, 

Request消息分为3部分,第一部分叫Requestline,第二部分叫Requestheader,第三部分是body.header和body之间有个空行,结构以下图

第一行中Method表示请求方法,比如"

POST"

"

GET"

 

Path-to-resoure表示请求资源,Http/version-number表示HTTP协议版本号

当使用是"

方法时候,body是为空

比如我们打开博客园首页request以下

GET

Host:

抽象东西,难以了解,老感觉是虚,所谓眼见为实,实际见到东西,我们才能了解和记忆。

我们今天用Fiddler,实际看看Request和Response.

下面我们打开Fiddler捕捉一个博客园登录Request然后分析下它结构,在Inspectorstab下以Raw方法能够看到完整Request消息, 

以下图

我们再看Response消息结构,和Request消息结构基础一样。

一样也分为三部分,第一部分叫Responseline,第二部分叫Responseheader,第三部分是body.header和body之间也有个空行, 

结构以下图

HTTP/version-number表示HTTP协议版本号, 

status-code和message请看下节[状态代码]具体解释.

我们用Fiddler捕捉一个博客园首页Response然后分析下它结构,在Inspectorstab下以Raw方法能够看到完整Response消息, 

Get和Post方法区分

Http协议定义了很多与服务器交互方法,最基础有4种,分别是GET,POST,PUT,DELETE.一个URL地址用于描述一个网络上资源,而HTTP中GET,POST,PUT,DELETE就对应着对这个资源查,改,增,删4个操作。

我们最常见就是GET和POST了。

GET通常见于获取/查询资源信息,而POST通常见于更新资源信息.

我们看看GET和POST区分

1.GET提交数据会放在URL以后,以?

分割URL和传输数据,参数之间以&

相连,如EditPosts.aspx?

name=test1&

id=123456. 

POST方法是把提交数据放在HTTP包Body中.

2.GET提交数据大小有限制(因为浏览器对URL长度有限制),而POST方法提交数据没有限制.

3.GET方法需要使用Request.QueryString来取得变量值,而POST方法经过Request.Form来获取变量值。

4.GET方法提交数据,会带来安全问题,比如一个登录页面,经过GET方法提交数据时,用户名和密码将出现在URL上,假如页面能够被缓存或者其她人能够访问这台机器,就能够从历史统计取得该用户账号和密码.

状态码

Response消息中第一行叫做状态行,由HTTP协议版本号,状态码,状态消息三部分组成。

状态码用来告诉HTTP用户端,HTTP服务器是否产生了预期Response.

HTTP/1.1中定义了5类状态码,状态码由三位数字组成,第一个数字定义了响应类别

1XX 

提醒信息-表示请求已被成功接收,继续处理

2XX 

成功-表示请求已被成功接收,了解,接收

3XX 

重定向-要完成请求必需进行更深入处理

4XX 

用户端错误- 

请求有语法错误或请求无法实现

5XX 

服务器端错误- 

服务器未能实现正当请求

看看部分常见状态码

200OK

最常见就是成功响应状态码200了,这表明该请求被成功地完成,所请求资源发送回用户端

以下图,打开博客园首页

302Found

重定向,新URL会在response中Location中返回,浏览器将会自动使用新URL发出新Request

比如在IE中输入,.HTTP服务器会返回302,IE取到Response中Locationheader新URL,又重新发送了一个Request.

304NotModified

代表上次文档已经被缓存了,还能够继续使用,

比如打开博客园首页,发觉很多Responsestatuscode都是304

提醒:

 假如你不想使用当地缓存能够用Ctrl+F5强制刷新页面

400BadRequest 

用户端请求与语法错误,不能被服务器所了解

403Forbidden服务器收到请求,不过拒绝提供服务

404NotFound

请求资源不存在(输错了URL)

比如在IE中输入一个错误URL,

500InternalServerError服务器发生了不可预期错误

503ServerUnavailable服务器目前不能处理用户端请求,一段时间后可能恢复正常

HTTPRequestheader

使用Fiddler能很方便查看Requesheader,点击Inspectorstab->

Requesttab->

headers 

以下图所表示.

header有很多,比较难以记忆,我们也根据Fiddler那样把header进行分类,这么比较清楚也轻易记忆。

Cache头域

If-Modified-Since

作用:

把浏览器端缓存页面最终修改时间发送到服务器去,服务器会把这个时间与服务器上实际文件最终修改时间进行对比。

假如时间一致,那么返回304,用户端就直接使用当地缓存文件。

假如时间不一致,就会返回200和新文件内容。

用户端接到以后,会丢弃旧文件,把新文件缓存起来,并显示在浏览器中.

比如:

If-Modified-Since:

Thu,09Feb09:

07:

57GMT

实例以下图

If-None-Match

If-None-Match和ETag一起工作,工作原理是在HTTPResponse中添加ETag信息。

当用户再次请求该资源时,将在HTTPRequest中加入If-None-Match信息(ETag值)。

假如服务器验证资源ETag没有改变(该资源没有更新),将返回一个304状态告诉用户端使用当地缓存文件。

不然将返回200状态和新资源和Etag. 

使用这么机制将提升网站性能

If-None-Match:

"

03f2b33c0bfcc1:

0"

Pragma

预防页面被缓存,在HTTP/1.1版本中,它和Cache-Control:

no-cache作用一模一样

Pargma只有一个使用方法,比如:

Pragma:

no-cache

注意:

在HTTP/1.0版本中,只实现了Pragema:

no-cache,没有实现Cache-Control

Cache-Control

这个是非常关键规则。

这个用来指定Response-Request遵照缓存机制。

各个指令含义以下

Cache-Control:

Public 

能够被任何缓存所缓存()

Private 

内容只缓存到私有缓存中

no-cache 

全部内容都不会被缓存

还有其她部分使用

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 人力资源管理

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1