详解http传输协议.docxVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
详解http传输协议

何为http协议(Hypertext Transfer Protocol,超文本传输协议)?所谓协议,就是指双方遵循的规范。http协议,就是浏览器和服务器之间进行“沟通”的一种规范。我们在看空间,刷微博...都是在使用http协议,当然,远远不止这些应用。笔者一直听说http是属于“应用层的协议”,而且是基于TCP/IP协议的。这个不难理解,如果你上大学时候学过“计算机网络”的课程,就一定知道OSI七层参考协议(我当时是死记硬背的)。如果你接触过socket网络编程,就应该明白TCP和UDP这两种使用广泛的通信协议(建立连接、三次握手等等,当然,这不是本文讨论的重点)。如图:既然TCP/UDP是广泛使用的网络通信协议,那为啥有多出个http协议来呢?笔者曾自己动手写过一个简单的web服务器处理软件,根据我的推断(不一定准确)。UDP协议具有不可靠性和不安全性,显然这很难满足web应用的需要。而TCP协议是基于连接和三次握手的,虽然具有可靠性,但仍具有一定的缺陷。但试想一下,普通的C/S架构软件,顶多上千个Client同时连接,而B/S架构的网站,十万人同时在线也是很平常的事儿。如果十万个客户端和服务器一直保持连接状态,那服务器如何满足承载呢?这就衍生出了http协议。基于TCP的可靠性连接。通俗点说,就是在请求之后,服务器端立即关闭连接、释放资源。这样既保证了资源可用,也吸取了TCP的可靠性的优点。正因为这点,所以大家通常说http协议是“无状态”的,也就是“服务器不知道你客户端干了啥”,其实很大程度上是基于性能考虑的。以至于后来有了session之类的玩意。实战准备工作:在监视网络方面,windows平台上有一款叫做Sniffer的优秀软件,这也是很多“黑客”经常使用的嗅探工具。在研究http协议时,推荐大家使用一款叫作httpwatch的工具。(遗憾的是,该工具是收费的。该咋办就咋办,你懂的)。安装完成后,可以在IE浏览器的tools中直接打开(目前也支持firefox)。如图所示:点击Record,就可以开始监视并记录http消息了。stop、Clear等等按钮的功能,这里就不一一介绍了。拿实例来说话,下面就是我记录访问main.aspx页面的时候记录的,能够清晰的看到http报文消息的详细信息,如图:学习http协议,主要需要了解http的请求和响应(当然,还有get、post等请求方式,状态码、URI、MIME等)首先看看http请求消息(就是浏览器丢给服务器的):一个http请求代表客户端浏览器向服务器发送的数据。一个完整的http请求消息,包含一个请求行,若干个消息头(请求头),换行,实体内容请求行:描述客户端的请求方式、请求资源的名称、http协议的版本号。例如: GET/BOOK/JAVA.HTML HTTP/1.1请求头(消息头)包含(客户机请求的服务器主机名,客户机的环境信息等):Accept:用于告诉服务器,客户机支持的数据类型(例如:Accept:text/html,image/*)Accept-Charset:用于告诉服务器,客户机采用的编码格式Accept-Encoding:用于告诉服务器,客户机支持的数据压缩格式Accept-Language:客户机语言环境Host:客户机通过这个服务器,想访问的主机名If-Modified-Since:客户机通过这个头告诉服务器,资源的缓存时间Referer:客户机通过这个头告诉服务器,它(客户端)是从哪个资源来访问服务器的(防盗链)User-Agent:客户机通过这个头告诉服务器,客户机的软件环境(操作系统,浏览器版本等)Cookie:客户机通过这个头,将Coockie信息带给服务器Connection:告诉服务器,请求完成后,是否保持连接Date:告诉服务器,当前请求的时间(换行)实体内容:就是指浏览器端通过http协议发送给服务器的实体数据。例如:name=dylanid=110(get请求时,通过url传给服务器的值。post请求时,通过表单发送给服务器的值)再看看HTTP响应消息(服务器返回给浏览器的):一个http响应代表服务器端向客户端回送的数据,它包括:一个状态行,若干个消息头,以及实体内容响应头(消息头)包含:Location:这个头配合302状态吗,用于告诉客户端找谁Server:服务器通过这个头,告诉浏览器服务器的类型Content-Encoding:告诉浏览器,服务器的数据压缩格式Content-Length:告诉浏览器,回送数据的长度Content-Type:告诉浏览器,回送数据的类型Last-Modified:告诉浏览器当前资源缓存时间Refresh:告诉浏览器,隔多长时间刷新Content-Disposition:告诉浏览器以下

文档评论(0)

shenlan118 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档