- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
HTTP 协议基础与实验
⼀. HTTP协议(Hypetext Transfer Protoacal ,超⽂本传输协议)
HTTP协议规定了Web基本的运作过程,以及Web服务器之间的通信细节。
Http协议采⽤客户端/服务器端通信模式,服务器端为Http服务器,也即Web服务器。客户端为Http客户程序,浏览器即为最常见的Http客户程序。
在分层的⽹络体系结果中,Http协议位于应⽤层。建⽴在TCP/IP协议基础之上。HTTP协议采⽤可靠的TCP连接,默认端⼝80。
HTTP协议的版本从HTTP 0.9 ,HTTP 1.0 ,HTTP 1.1。HTTP 1.0协议对应的RFC⽂档为RFC1945。HTTP 1.1协议对应的RFC⽂档为RFC2068。
HTTP协议是⼀个基于请求/响应模式的,⽆状态的协议。(命令模式)
客户端(浏览器)与服务器端(Web服务器应⽤程序)建⽴连接后,向服务器端发送⼀个请求,服务器对这个请求进⾏,然后返回⼀个响应信息,之后双⽅的连接被
关闭。
在HTTP1.0 中,当连接建⽴后,浏览器发送⼀个请求,服务器回应⼀个消息,之后,连接就被关闭.
当浏览器下次请求的时候,需要重新建⽴连接,这样的通信⽅式⽐较繁琐。
因此在HTTP1.1 中,给出了⼀个持续连接的机制.并将其作为HTTP1.1 中建⽴连接的默认⾏为.浏览器可以在建⽴⼀个连接后没发⽣请求并得到回应,然后继续发
⽣请求并得到回应.⽽且,客户端还可以连续发送多个请求,⽽不⽤等待每个响应的到来。
⼆. HTTP URL
http要通过HTTP协议来定位⽹络资源。
host表⽰合法的Internet主机域名或IP地址(点分⼗进制的格式)。
port⽤于指定端⼝号.若port是空则使⽤默认端⼝号80。
abs_path 指定请求资源的URL,如果URL中没有给出abs_path ,那么当它作为请求的URI时,必须以”/” 的形式给出。
通常浏览器会帮助我们把输⼊的URL合法化.
三. HTTP请求
客户端通过发送HTTP请求向服务器请求对资源的访问。
HTTP请求由三部分组成,分别是:请求⾏,消息报头,请求正⽂。
1.请求⾏
请求⾏由请求⽅法,URI,HTTP协议的版本组成,请求⾏以空格分隔。以CRLF( 回车换⾏)作为结尾。
CRLF (Carriage Return Linefeed )是指回车符和⾏结束符\r\n。
Method Request-URI HTTP-Version CRLF
Method 表⽰请求的⽅法。
Request-URI 表⽰请求资源的URI。通常URI只要给出服务器的根⽬录的相对⽬录即可。所以以“\”开头。
HTTP-Version 表⽰请求的HTTP版本。
CRLF 表⽰回车换⾏。
例: GET /form.html HTTP/1.1 (CRLF)
* 请求⽅法
在HTTP协议中,HTTP请求可以使⽤多种请求⽅法.这些⽅法指明了访问⽤Request-URI标识的资源的⽅式.HTTP1.1请求⽅法如下
客户端发送给服务器的请求称为⽅法.
⽅法:GET,POST,HEAD,PUT,DELETE,TRACE,OPTIONS。
其中最常⽤的是GET,POST,HEAD
GET⽅法,⽤来从服务器读取信息。例:从服务器读取⽂件,表格,数据库查询结果等.GET⽅法原则上不会⽤来发送⼤量的信息.有些服务器将URL以及查询字符
串的长度限制在240个字符内.
POST⽅法,⽤来向服务器传输信息.例:把信号卡号,表格,存储与数据库的数据等传送到服务器.
HEAD⽅法,⽤来读取服务器响应.例:得到⽂件⼤⼩,⽂件最后修改时间,服务器类型等信息.
PUT⽅法将⽂件直接传到服务器.
DELETE⽅法将⽂件直接总服务器删除.
TRACE⽅法,⽤来协助程序调试.
OPTIONS⽅法,⽤来歘讯服务器所⽀持的⽅法.
2. 请求头
请求头包含许多有关客户端环境和请求正⽂的有⽤信息。如请求头可以声明浏览器类型,所以语⾔,请求正⽂的类型,正⽂的长度等。
例:
3. 请求正⽂
HTTP协议规定,请求头和请求正⽂之间必须以空⾏分隔(即只有CRLF符号的⾏),这个空⾏⾮常重要,它表⽰请求头已经结束,接下来是请求正⽂。请求正
⽂中可以包含客户以POST⽅式提交的数据:
username=supermanpassword=8888
四. HTTP响应
1. 响应⾏
响应⾏由HTTP协议的版本,状态代码,状态描述组成,请求⾏以空格分隔。
文档评论(0)