http协议详解.docx
- 文档编号:26455886
- 上传时间:2023-06-19
- 格式:DOCX
- 页数:7
- 大小:17.83KB
http协议详解.docx
《http协议详解.docx》由会员分享,可在线阅读,更多相关《http协议详解.docx(7页珍藏版)》请在冰豆网上搜索。
http协议详解
竭诚为您提供优质文档/双击可除
http协议,详解
篇一:
深入理解http协议及原理分析
深入理解http协议及原理分析
http协议是用于从www服务器传输超文本到本地浏览器的传送协议。
它可以使浏览器更加高效,使网络传输减少。
它不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分,以及哪部分内容首先显示等。
1.基础概念篇
1.1介绍
http是hypertexttransferprotocol(超文本传输协议)的缩写。
它的发展是万维网协会(worldwidewebconsortium)和internet工作小组ietF(internetengineeringtaskForce)合作的结果,(他们)最终发布了一系列的RFc,RFc1945定义了http/1.0版本。
其中最著名的就是RFc2616。
RFc2616定义了今天普遍使用的一个版本——http1.1。
http协议(hypertexttransferprotocol,超文本传输协议)是用于从www服务器传输超文本到本地浏览器的传送协议。
它可以使浏览器更加高效,使网络传输减少。
它不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分,以及哪部分内容首先显示(如文本先于图形)等。
http是一个应用层协议,由请求和响应构成,是一个标准的客户端服务器模型。
http是一个无状态的协议。
1.2在tcp/ip协议栈中的位置
http协议通常承载于tcp协议之上,有时也承载于tls或ssl协议层之上,这个时候,就成了我们常说的https。
如下图所示:
1
默认http的端口号为80,https的端口号为443。
1.3http的请求响应模型
http协议永远都是客户端发起请求,服务器回送响应。
见下图:
这样就限制了使用http协议,无法实现在客户端没有发起请求的时候,服务器将消息推送给客户端。
http协议是一个无状态的协议,同一个客户端的这次请求和上次请求是没有对应关系。
1.4工作流程
一次http操作称为一个事务,其工作过程可分为四步:
1)首先客户机与服务器需要建立连接。
只要单击某个超级链接,http的工作开始。
2)建立连接后,客户机发送一个请求给服务器,请求方式的格式为:
统一资源标识符(uRl)、协议版本号,后边是mime信息包括请求修饰符、客户机信息和可能的内容。
3)服务器接到请求后,给予相应的响应信息,其格式为一个状态行,包括信息的协议版本号、一个成功或错误的代码,后边是mime信息包括服务器信息、实体信息和可能的内容。
2
4)客户端接收服务器所返回的信息通过浏览器显示在用户的显示屏上,然后客户机与服务器断开连接。
如果在以上过程中的某一步出现错误,那么产生错误的信息将返回到客户端,有显示屏输出。
对于用户来说,这些过程是由http自己完成的,用户只要用鼠标点击,等待信息显示就可以了。
1.5使用wireshark抓tcp、http包
打开wireshark,选择工具栏上的“capture”->“options”,界面选择如图1所示:
图1设置capture选项
一般读者只需要选择最上边的下拉框,选择合适的device,而后点击“captureFilter”,此处选择的是“httptcpport(80)”,选择后点击上图的“start”开始抓包。
3
图2选择captureFilter
例如在浏览器中打开
图3抓包
在上图中,可清晰的看到客户端浏览器(ip为192.168.2.33)与服务器的交互过程:
1)no1:
浏览器(192.168.2.33)向服务器(220.181.50.118)发出连接请求。
此为tcp三次握手第一步,此时从图中可以看出,为syn,seq:
x(x=0)
2)no2:
服务器(220.181.50.118)回应了浏览器(192.168.2.33)的请求,并要求确认,此时为:
syn,ack,此时seq:
y(y为0),ack:
x+1(为1)。
此为三次握手的第二步;
3)no3:
浏览器(192.168.2.33)回应了服务器(220.181.50.118)的确认,连接成功。
为:
ack,此时seq:
x+1(为1),ack:
y+1(为1)。
此为三次握手的第三步;
4)no4:
浏览器(192.168.2.33)发出一个页面http请求;
4
5)no5:
服务器(220.181.50.118)确认;
6)no6:
服务器(220.181.50.118)发送数据;
7)no7:
客户端浏览器(192.168.2.33)确认;
8)no14:
客户端(192.168.2.33)发出一个图片http请求;
9)no15:
服务器(220.181.50.118)发送状态响应码200ok
1.6头域
每个头域由一个域名,冒号(:
)和域值三部分组成。
域名是大小写无关的,域值前可以添加任何数量的空格符,头域可以被扩展为多行,在每行开始处,使用至少一个空格或制表符。
在抓包的图中,no14点开可看到如图4所示:
图4http请求消息
回应的消息如图5所示:
图5http状态响应信息
5
篇二:
http协议详解(超详细)
http协议详解(超详细)
1.基础概念篇
1.1介绍
http是hypertexttransferprotocol(超文本传输协议)的缩写。
它的发展是万维网协会(worldwidewebconsortium)和internet工作小组ietF(internetengineeringtaskForce)合作的结果,(他们)最终发布了一系列的RFc,RFc1945定义了http/1.0版本。
其中最著名的就是RFc2616。
RFc2616定义了今天普遍使用的一个版本——http1.1。
http协议(hypertexttransferprotocol,超文本传输协议)是用于从www服务器传输超文本到本地浏览器的传送协议。
它可以使浏览器更加高效,使网络传输减少。
它不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分,以及哪部分内容首先显示(如文本先于图形)等。
http是一个应用层协议,由请求和响应构成,是一个标准的客户端服务器模型。
http是一个无状态的协议。
1.2在tcp/ip协议栈中的位置
http协议通常承载于tcp协议之上,有时也承载于tls或ssl协议层之上,这个时候,就成了我们常说的https。
如下图所示:
默认http的端口号为80,https的端口号为443。
1.3http的请求响应模型
http协议永远都是客户端发起请求,服务器回送响应。
见下图:
这样就限制了使用http协议,无法实现在客户端没有发起请求的时候,服务器将消息推送给客户端。
http协议是一个无状态的协议,同一个客户端的这次请求和上次请求是没有对应关系。
1.4工作流程
一次http操作称为一个事务,其工作过程可分为四步:
1)首先客户机与服务器需要建立连接。
只要单击某个超级链接,http的工作开始。
2)建立连接后,客户机发送一个请求给服务器,请求方式的格式为:
统一资源标识符(uRl)、协议版本号,后边是mime信息包括请求修饰符、客户机信息和可能的内容。
3)服务器接到请求后,给予相应的响应信息,其格式为一个状态行,包括信息的协议版本号、一个成功或错误的代码,后边是mime信息包括服务器信息、实体信息和可能的内容。
4)客户端接收服务器所返回的信息通过浏览器显示在用户的显示屏上,然后客户机与服务器断开连接。
如果在以上过程中的某一步出现错误,那么产生错误的信息将返回到客户端,有显示屏输出。
对于用户来说,这些过程是由http自己完成的,用户只要用鼠标点击,等待信息显示就可以了。
1.5使用wireshark抓tcp、http包
打开wireshark,选择工具栏上的“capture”->“options”,界面选择如图1所示:
图1设置capture选项
一般读者只需要选择最上边的下拉框,选择合适的device,而后点击“captureFilter”,此处选择的是“httptcpport(80)”,选择后点击上图的“start”开始抓包。
篇三:
http协议详解
当今web程序的开发技术真是百家争鸣,,php,jsp,perl,ajax等等。
无论web技术在未来如何发展,理解web程序之间通信的基本协议相当重要,因为它让我们理解了web应用程序的内部工作.本文将对http协议进行详细的实例讲解,内容较多,希望大家耐心看。
也希望对大家的开发工作或者测试工作有所帮助。
使用Fiddler工具非常方便地捕获httpRequest和httpResponse,关于Fiddler工具的用法,请看我另一篇博客[Fiddler教程]
阅读目录
1.
2.
3.
4.
5.
6.
7.
8.
9.10.
11.
什么是http协议
协议是指计算机通信网络中两台计算机之间进行通信所必须共同遵守的规定或规则,超文本传输协议(http)是一种通信协议,它允许将超文本标记语言(html)文档从web服务器传送到客户端的浏览器
目前我们使用的是http/1.1版本
web服务器,浏览器,
代理服务器
当我们打开浏览器,在地址栏中输入uRl,然后我们就看到了网页。
原理是怎样的呢?
实际上我们输入uRl后,我们的浏览器给web服务器发送了一个Request,web服务器接到Request后进行处理,生成相应的Response,然后发送给浏览器,浏览器解析Response中的html,这样我们就看到了网页,过程如下图所示
我们的Request有可能是经过了代理服务器,最后才到达web服务器的。
过程如下图所示
代理服务器就是网络信息的中转站,有什么功能呢?
1.提高访问速度,大多数的代理服务器都有缓存功能。
2.突破限制,也就是Fq了
3.隐藏身份。
uRl详解
uRl(uniformResourcelocator)地址用于描述一个网络上的资源,基本格式如下schema:
//host[:
port#]/path/.../[query-string][#anchor]
scheme指定低层使用的协议(例如:
http,https,ftp)
hosthttp服务器的ip地址或者域名
port#http服务器的默认端口是80,这种情况下端口号可以省略。
如果使用了别的端口,必须指明,例如:
8080/
path访问资源的路径
query-string发送给http服务器的数据
anchor-锚
uRl的一个例子
/sj/test/test.aspxname=sviergn&x=true#stuff
schema:
http
host:
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协议的版本号
当使用的是"get"方法的时候,body是为空的
比如我们打开博客园首页的request如下get/http/1.1
host:
抽象的东西,难以理解,老感觉是虚的,所谓眼见为实,实际见到的东西,我们才能理解和记忆。
我们今天用Fiddler,实际的看看Request和Response.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- http 协议 详解