传智播客php培训14(深度剖析HTTP协议)

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

—高级软件人才实作培训专家!北京传智播客教育协议讲师:韩顺平hanshunping@tsinghua.org.cn—高级软件人才实作培训专家!什么是HTTP协议主讲韩顺平超文本传输协议(HTTP,HyperTextTransferProtocol)是互联网上应用最为广泛的一种网络协议。是工作在tcp/ip协议基础上的,所有的文件都必须遵守这个标准。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。通过httpwatch插件来抓取http请求内容。http1.0短连接http1.1长连接.http是TCP/IP协议的一个应用层协议,http也是我们web开发的基础.—高级软件人才实作培训专家!一个问题主讲韩顺平看一个test.html页面h1abc/h1imgsrc=news.jpg/imgsrc=news2.jpg/问浏览器发出几次http请求?1次2次3次—高级软件人才实作培训专家!HTTP请求主讲韩顺平举例:GET/test/hello.htmlHTTP/1.1Accept:*/*Referer::zh-cnUser-Agent:Mozilla/4.0Accept-Encoding:gzip,deflateHost:localhost:8080Connection:Keep-Alive客户端连上服务器后,向服务器请求某个web资源,称之为客户端向服务器发送了一个HTTP请求。一个完整的HTTP请求包括如下内容:一个请求行、若干消息头、以及实体内容,其中的一些消息头和实体内容都是可选的,消息头和实体内容之间要用空行隔开。如下所示:请求行一个空行多个消息头请求行用于描述客户端的请求方式、请求的资源名称,以及使用的HTTP协议版本号消息头用于描述客户端请求哪台主机,以及客户端的一些环境信息等—高级软件人才实作培训专家!HTTP请求的细节——请求行主讲韩顺平请求行中的GET称之为请求方式,请求方式有:POST、GET、HEAD、OPTIONS、DELETE、TRACE、PUT常用的有:POST、GETgetpost区别是程序员常常讨论的问题,总结以下区别.①GET提交,请求的数据会跟在URL之后例如:login.php?name=abc&password=kkkPOST提交:把提交的数据放置在是HTTP包的包体中。比如:POST/test/reg.phpHTTP/1.1Host:Content-Type:Content-Length:name=abc&password=xyz因此,GET提交的数据会在地址栏中显示出来,而POST提交,地址栏不会改变—高级软件人才实作培训专家!HTTP请求的细节——请求行主讲韩顺平②传输数据的大小:首先声明:HTTP协议没有对传输的数据大小进行限制,HTTP协议规范也没有对URL长度进行限制。而在实际开发中存在的限制主要有:GET:特定浏览器和服务器对URL长度有限制,例如IE对URL长度的限制是2083字节(2K+35)。对于其他浏览器,如Netscape、FireFox等,理论上没有长度限制,其限制取决于操作系统的支持。因此对于GET提交时,传输数据就会受到URL长度的限制。POST:由于不是通过URL传值,理论上数据不受限。③安全性:相对而言post提交,安全高.④get提交更利于添加到我的收藏夹—高级软件人才实作培训专家!HTTP请求的细节——消息头主讲韩顺平用于HTTP请求中的常用头Accept:text/html,image/*Accept-Charset:ISO-8859-1Accept-Encoding:gzip,compressAccept-Language:en-us,zh-cnHost::Tue,11Jul200018:23:51GMTReferer::Mozilla/4.0(compatible;MSIE5.5;WindowsNT5.0)CookieConnection:close/Keep-AliveDate:Tue,11Jul200318:23:51GMT当服务器需要知道请求是来自哪个ip等信息,就可通过程序获得相应的信息—高级软件人才实作培训专家!HTTP请求的细节——消息头主讲韩顺平HTTP请求课堂小练习请编写一个MyImport.php该php显示你的名字,工作和性别,当一个链接不是来自本网站的,则跳转到错误提示页面“小子,想盗链吗?”—高级软件人才实作培训专家!HTTP响应主讲韩顺平举例:HTTP/1.1200OKServer:Microsoft-IIS/5.0Date:Thu,13Jul200005:46:53GMTContent-Length:2291Content-Type:text/htmlCache-control:privateHTMLBODY……一个HTTP响应代表服务器向客户端回送的数据,它包括:一个状态行、若干消息头、以及实体内容,其中的一些消息头和实体内容都是可选的,消息头和实体内容之间要用空行隔开。状态行一个空行多个消息头实体内容状态行用于描述服务器对请求的处理结果。消息头用于描述服务器的基本信息,以及数据的描述,服务器通过这些数据的描述信息,可以通知客户端如何处理等一会儿它回送的数据。代表服务器向客户端回送的数据—高级软件人才实作培训专家!HTTP响应的细节——状态行主讲韩顺平基本结构格式:HTTP版本号状态码原因叙述CRLF举例:HTTP/1.1200OK状态码用于表示服务器对请求的处理结果,它是一个三位的十进制数。响应状态码分为5类,如下所示:状态码含义100~199表示成功接收请求,要求客户端继续提交下一次请求才能完成整个处理过程200~299表示成功接收请求并已完成整个处理过程,常用200300~399为完成请求,客户需进一步细化请求。例如,请求的资源已经移动一个新地址,常用302、304400~499客户端的请求有错误,常用404500~599服务器端出现错误,常用500—高级软件人才实作培训专家!HTTP响应细节——常用响应头主讲韩顺平HTTP请求中的常用响应头Location::apachetomcatContent-Encoding:gzipContent-Length:80Content-Language:zh-cnContent-Type:text/html;charset=GB2312Last-Modified:Tue,11Jul200018:23:51GMTRefresh:1;url==aaa.zipTransfer-Encoding:chunkedSet-Cookie:SS=Q0=5Lb_nQ;path=/searchExpires:-1Cache-Control:no-cachePragma:no-cacheConnection:close/Keep-AliveDate:Tue,11Jul200018:23:51GMT如何防止浏览器缓存页面.重点讲解:Location,Content-Type,Refresh,Content-Disposition,Expires,Cache-control,Pragma—高级软件人才实作培训专家!作业主讲韩顺平1.描述清楚HTTP请求头、响应头的格式2.请求头和响应头中各个头字段的含义3.请描述200、302、304、404和500等响应状态码所表示的意义。4.请列举三种禁止浏览器缓存的头字段,并写出相应的5.如果浏览器传递给WEB服务器的参数内容超过1K,应该使用那种方式发送请求消息?6.如何获取http协议的其他消息头信息(google一下吧!)

1 / 12
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功