网络应用开发3HTTP协议

上传人:xt****7 文档编号:188349828 上传时间:2023-02-19 格式:PPT 页数:33 大小:343.50KB
收藏 版权申诉 举报 下载
网络应用开发3HTTP协议_第1页
第1页 / 共33页
网络应用开发3HTTP协议_第2页
第2页 / 共33页
网络应用开发3HTTP协议_第3页
第3页 / 共33页
资源描述:

《网络应用开发3HTTP协议》由会员分享,可在线阅读,更多相关《网络应用开发3HTTP协议(33页珍藏版)》请在装配图网上搜索。

1、教学目标l 理解HTTP的基本原理及运行机制l 了解HTTP应用开发的基本方法l 掌握HTML的标签、文档结构和基本语法HTTPHTTP协议协议汤胤汤胤供电子商务相关专业使用供电子商务相关专业使用HTTPHTTP协议是什么协议是什么lHTTP协议(HypertextTransfer Protocol),即超文本传输协议l浏览器通过超文本传输协议(HTTP),将Web服务器上站点的网页代码提取出来,并翻译成漂亮的网页HTTPHTTP协议简介协议简介lHTTP是hypertext transfer protocol(超文本传输协议)的简写,它是TCP/IP协议的一个应用层应用层协议,用于定义WEB

2、浏览器与WEB服务器之间交换数据的过程。lHTTP协议是学习JavaWEB开发的基石,不深入了解HTTP协议,就不能说掌握了WEB开发,更无法管理和维护一些复杂的WEB站点。l在HTTP1.0协议中,客户端与web服务器建立连接后,只能获得一个web资源。lHTTP1.1协议,允许客户端与web服务器建立连接后,在一个连接上获取多个web资源。l使用telnet举例说明。l一个好多同学搞不清楚的问题:一个web页面中,使用img标签引用了三幅图片,当客户端访问服务器中的这个web页面时,客户端总共会访问几次服务器,即向服务器发送了几次HTTP请求。HTTPHTTP协议基础协议基础lHTTP协议

3、分析HTTP 是一种请求/响应式的协议。一个客户机与服务器建立连接后,发送一个请求给服务器;服务器接到请求后,给予相应的响应信息。HTTPHTTP的宏观工作原理的宏观工作原理 客户机(IE)服务器【server】请求响应MIME类型lMIME的英文全称是“Multipurpose Internet Email Extension”多功能Internet 邮件扩充服务,服务器将MIME标志符放入传送的数据中来告诉浏览器使用哪种插件读取相关文件。l常见的MIME类型l超文本标记语言文本.html,.html text/html l普通文本.txt text/plain lRTF文本.rtf app

4、lication/rtf lGIF图形.gif image/gif lJPEG图形.ipeg,.jpg image/jpeg lau声音文件.au audio/basic lMIDI音乐文件 mid,.midi audio/midi,audio/x-midi lRealAudio音乐文件.ra,.ram audio/x-pn-realaudio lMPEG文件.mpg,.mpeg video/mpeg lAVI文件.avi video/x-msvideo lGZIP文件.gz application/x-gzip lTAR文件.tar application/x-tar 实验工具实验工具l使用

5、telnet程序连上web服务器,并使用HTTP协议获取某个页面,快速了解 HTTP协议的作用l安装IE浏览器插件HttpWatch,查看IE浏览器通过HTTP协议获取某个页面l安装Firefox浏览器插件Live HTTP headersl安装抓包软件Fiddlerl安装抓包软件Wireshark for windowsl安装抓包软件Wireshark for ubuntu或minidwepsudo apt-get install wiresharksudo wiresharkHTTP RequestHTTP Request请求头请求头l举例:举例:GET GET/books/java.ht

6、ml AcceptAccept:*/*Accept-Language:Accept-Language:en-usConnectionConnection:Keep-AliveHostHost:localhostRefererRefererUser-AgentUser-AgentAccept-EncodingAccept-Encoding:gzip,deflate l客户端连上服务器后,向服务器请求某个客户端连上服务器后,向服务器请求某个web资源,称之为客资源,称之为客户端向服务器发送了一个户端向服务器发送了一个HTTP请求。一个完整的请求。一个完整的HTTP请求包请求包括如下内容:括如下内容

7、:一个请求行、若干消息头、以及实体内容,如下所示:请求行请求行一个一个空行空行多个多个消息头消息头请求行用于描述客户端的请求方式、请求的资源名称,以及使用的HTTP协议版本号消息头用于描述客户端请求哪台主机,以及客户端的一些环境信息等HTTPHTTP请求的细节请求的细节命令命令commandcommandl请求行中的请求行中的GET称之为请求方式,请求方式有:称之为请求方式,请求方式有:POST、GET、HEAD、OPTIONS、DELETE、TRACE、PUT常用的有:GET、POST用户如没有设置,默认情况下浏览器向服务器发送的都是get请求,例如在浏览器直接输地址访问,点超链接访问等都是

8、get,用户如想把请求方式改为post,可通过更改表单的提交方式实现。在Restful的架构中GET对应于资源的Read,POST对应于CreatePUT对应于Update,DELETE对应于Deletel不管不管POSTPOST或或GETGET,都用于向服务器请求某个,都用于向服务器请求某个WEBWEB资源,这两资源,这两种方式的区别主要表现在数据传递上:种方式的区别主要表现在数据传递上:如请求方式为如请求方式为GETGET方式,则可以在请求的方式,则可以在请求的URLURL地址后以地址后以?的形式带上的形式带上交给服务器的数据,多个数据之间以交给服务器的数据,多个数据之间以&进行分隔,例如

9、:进行分隔,例如:?name=abc&password=xyzGET方式的特点:在方式的特点:在URL地址后附带的参数是有限制的,其数据容量通常不能超地址后附带的参数是有限制的,其数据容量通常不能超过过1K。如请求方式为如请求方式为POSTPOST方式,则可以在请求的实体内容中向服务器发送方式,则可以在请求的实体内容中向服务器发送数据,数据,Post方式的特点:方式的特点:传送的数据量无限制。HTTP RequestHTTP Request的消息头的消息头HeadHeadl用于用于HTTP请求中的常用头请求中的常用头Accept:text/html,image/*Accept-Charset:

10、ISO-8859-1Accept-Encoding:gzip,compressAccept-Language:en-us,zh-cn Host:www.it315.org:80If-Modified-Since:Tue,11 Jul 2000 18:23:51 GMTReferer:User-Agent:Mozilla/4.0(compatible;MSIE 5.5;Windows NT 5.0)CookieConnection:close/Keep-Alive Date:Tue,11 Jul 2000 18:23:51 GMTlCacheIf-Modified-Since vs.Last-M

11、odified/Expires If-None-Match vs.ETagPragma vs.Cache-ControllClientAccept vs.Content-Type:text/html;charset=utf-8Accept-Encoding vs.Content-Encoding,VaryAccept-Language vs.Content-LanguageAccept-Charset vs.CharsetUser-Agent vs.ServerlCookies/LoginCookie vs.Set-CookieP3P 跨域设置Cookie,这样可以解决iframe跨域访问co

12、okie的问题lEntityContent-Length:38Content-TypelMiscellaneous 头域Referer:提供了Request的上下文信息的服务器,告诉服务器我是从哪个链接过来的,比如从我主页上链接到一个朋友那里,他的服务器就能够从HTTP Referer中统计出每天有多少用户点击我主页上的链接访问他的网站。(谁推荐过来的?)lTransport 头域Connection:keep-alive|closeHost :(发送请求时,该报头域是必需的)即url中的主机lIf-None-Match和ETag一起工作,工作原理是在HTTP Response中添加ETag信

13、息。当用户再次请求该资源时,将在HTTP Request 中加入If-None-Match信息(ETag的值)。如果服务器验证资源的ETag没有改变(该资源没有更新),将返回一个304状态告诉客户端使用本地缓存文件。否则将返回200状态和新的资源和Etag.使用这样的机制将提高网站的性能lIf-Modified-Since 作用:把浏览器端缓存页面的最后修改时间发送到服务器去,服务器会把这个时间与服务器上实际文件的最后修改时间进行对比。如果时间一致,那么返回304,客户端就直接使用本地缓存文件。如果时间不一致,就会返回200和新的文件内容。客户端接到之后,会丢弃旧文件,把新文件缓存起来,并显示

14、在浏览器中.例如:If-Modified-Since:Thu,09 Feb 2012 09:07:57 GMTHTTP ResponseHTTP Response响应响应l举例:举例:HTTP/1.1 200 OKServerServerDateDate:Thu,13 Jul 2000 05:46:53 GMTContent-LengthContent-Length:2291Content-TypeContent-Type:text/htmlCache-controlCache-control:privatel一个一个HTTP响应代表服务器向客户端回送的数据,它包括:响应代表服务器向客户端回送

15、的数据,它包括:一个状态行、若干消息头、以及实体内容。状态行状态行一个一个空行空行多个多个消息头消息头实体内容实体内容状态行用于描述服务器对请求的处理结果。消息头用于描述服务器的基本信息,以及数据的描述,服务器通过这些数据的描述信息,可以通知客户端如何处理等一会儿它回送的数据。代表服务器向客户端回送的数据HTTP ResponseHTTP Response状态行状态行l状态行状态行格式:格式:HTTP版本号状态码原因叙述举例:举例:HTTP/1.1 200 OKl状态码用于表示服务器对请求的处理结果,它是一个三位的十进制数。响应状态码分为5类,如下所示:HTTP ReponseHTTP Rep

16、onse常用响应头常用响应头lHTTP请求中的常用响应头请求中的常用响应头Server:apache tomcatContent-Encoding:gzip Content-Length:80 Content-Language:zh-cn Content-Type:text/html;charset=GB2312 Last-Modified:Tue,11 Jul 2000 18:23:51 GMTTransfer-Encoding:chunked Set-Cookie:SS=Q0=5Lb_nQ;path=/searchExpires:-1Cache-Control:no-cache Pragm

17、a:no-cache Connection:close/Keep-Alive Date:Tue,11 Jul 2000 18:23:51 GMTHTTPHTTP实用头字段实用头字段lHTTP请求头字段Range头指示服务器只传输一部分Web资源。这个头可以用来实现断点续传功能。Range字段可以通过三种格式设置要传输的字节范围:Range:bytes=1000-2000传输范围从1000到2000字节。Range:bytes=1000-传输Web资源中第1000个字节以后的所有内容。Range bytes=1000 传输最后1000个字节。lHTTP响应消息头字段Accept-Ranges:这

18、个字段说明Web服务器是否支持Range支持,则返回Accept-Ranges:bytes,如果不支持,则返回Accept-Ranges:none.Content-Range:指定了返回的Web资源的字节范围。这个字段值的格式是:例子:Content-Range:1000-3000/5000Request/ResponseRequest/Response的结构的结构HTTP请求:l请求行 l请求头(Request Header)l请求正文 HTTP 响应:l状态行l响应头(Response Header)l响应正文 RequestRequestResponseResponse实验1 在命令行使

19、用telnetltelnet :80请求:实验2 Live HTTP headers分析 使用firefox浏览器所带插件 Live HTTP headers分析lHost:lUser-Agent:lAccept:lAccept-Language:lAccept-Encoding:gzip,deflatelAccept-Charset:lKeep-Alive:300lConnection:keep-alivelCookie:PREF=ID=8cc8b2eb55b74f2a:NW=1:TM=1266683866:LM=1266683866:S=fCdngTNGhnC8064p;NID=31=oH

20、QgPfAwotISZLam-YuXwG02CxD0VPR1TJXbOGVtcAqNCWji0WsjS2Set1TXWRiTRtWWMKnswdMp1vnowRZvTTu7J7xiz8Cq_ckDZ_TQQF4BM93uAZ_68JLlgUl2inI9lCache-Control:max-age=0请求信息 页面lHTTP/1.1 200 OKlDate:Sat,20 Feb 2010 16:38:43 GMTlExpires:-1lCache-Control:private,max-age=0lContent-Type:text/html;charset=UTF-8lSet-Cookie:l

21、Server:gws /google web server lX-XSS-Protection:0 /过滤器不对其网站内容检查 lContent-Encoding:gzip /数据被要求用gzip 压缩 lTransfer-Encoding:chunked /Chunked编码传输 响应信息请求信息:lHost:lUser-Agent:lAccept:lAccept-Language:lAccept-Encoding:gzip,deflatelAccept-Charset:lKeep-Alive:300lConnection:keep-alivelCookie:ASPSESSIONIDQSRC

22、BSDT=CMOJLNPDGMILLEIPIFAFEMIKlCache-Control:max-age=0响应信息:lHTTP/1.1 200 OKlDate:Sat,20 Feb 2010 15:15:48 GMTlServer:lX-Powered-By:lContent-Length:3807lContent-Type:text/htmllCache-Control:privateHTTPHTTP应用开发方法应用开发方法lHTTP协议从通信的角度贯穿了应用开发的多个层次,包括了:HTTP客户程序、HTTP服务器程序、服务器端应用程序代理服务器代理服务器CGI JSP ASP PHPIE 搜索引擎搜索引擎作业作业l请写一篇关于HTTP协议的笔记,要求:描述清楚HTTP请求、响应的格式请求头和响应头中各个头字段的含义l如果浏览器传递给WEB服务器的参数内容超过1K,应该使用那种方式发送请求消息?l请描述200、302、304、404和500等响应状态码所表示的意义。l请列举三种禁止浏览器缓存的头字段,并写出相应的设置值。

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!