网络应用开发3HTTP协议.ppt

上传人:本田雅阁 文档编号:3222836 上传时间:2019-08-02 格式:PPT 页数:33 大小:2.23MB
返回 下载 相关 举报
网络应用开发3HTTP协议.ppt_第1页
第1页 / 共33页
网络应用开发3HTTP协议.ppt_第2页
第2页 / 共33页
网络应用开发3HTTP协议.ppt_第3页
第3页 / 共33页
网络应用开发3HTTP协议.ppt_第4页
第4页 / 共33页
网络应用开发3HTTP协议.ppt_第5页
第5页 / 共33页
点击查看更多>>
资源描述

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

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

2、协议的一个应用层协议,用于定义WEB浏览器与WEB服务器之间交换数据的过程。 HTTP协议是学习JavaWEB开发的基石,不深入了解HTTP协议,就不能说掌握了WEB开发,更无法管理和维护一些复杂的WEB站点。 HTTP协议的版本:HTTP/1.0、HTTP/1.1,供电子商务专业使用,HTTP1.0和HTTP1.1的区别,在HTTP1.0协议中,客户端与web服务器建立连接后,只能获得一个web资源。 HTTP1.1协议,允许客户端与web服务器建立连接后,在一个连接上获取多个web资源。 使用telnet举例说明。 一个好多同学搞不清楚的问题: 一个web页面中,使用img标签引用了三幅图

3、片,当客户端访问服务器中的这个web页面时,客户端总共会访问几次服务器,即向服务器发送了几次HTTP请求。,供电子商务专业使用,HTTP协议基础,HTTP协议分析 HTTP 是一种请求/响应式的协议。一个客户机与服务器建立连接后,发送一个请求给服务器;服务器接到请求后,给予相应的响应信息。,供电子商务专业使用,HTTP的宏观工作原理,客户机 (IE),服务器 【server】,供电子商务专业使用,MIME类型,MIME的英文全称是“Multipurpose Internet Email Extension” 多功能Internet 邮件扩充服务,服务器将MIME标志符放入传送的数据中来告诉浏览

4、器使用哪种插件读取相关文件。 常见的MIME类型 超文本标记语言文本 .html,.html text/html 普通文本 .txt text/plain RTF文本 .rtf application/rtf GIF图形 .gif image/gif JPEG图形 .ipeg,.jpg image/jpeg au声音文件 .au audio/basic MIDI音乐文件 mid,.midi audio/midi,audio/x-midi RealAudio音乐文件 .ra, .ram audio/x-pn-realaudio MPEG文件 .mpg,.mpeg video/mpeg AVI文件

5、 .avi video/x-msvideo GZIP文件 .gz application/x-gzip TAR文件 .tar application/x-tar,供电子商务专业使用,实验工具,使用telnet程序连上web服务器,并使用HTTP协议获取某个页面,快速了解 HTTP协议的作用 安装IE浏览器插件HttpWatch,查看IE浏览器通过HTTP协议获取某个页面 安装Firefox浏览器插件Live HTTP headers 安装抓包软件Fiddler 安装抓包软件Wireshark for windows 安装抓包软件Wireshark for ubuntu或minidwep sud

6、o apt-get install wireshark sudo wireshark,供电子商务专业使用,HTTP Request请求头,举例: GET /books/java.html HTTP/1.1 Accept: */* Accept-Language: en-us Connection: Keep-Alive Host: localhost Referer: http:/localhost/links.asp User-Agent: Mozilla/4.0 Accept-Encoding: gzip, deflate,客户端连上服务器后,向服务器请求某个web资源,称之为客户端向服务

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

8、都是get,用户如想把请求方式改为post,可通过更改表单的提交方式实现。 在Restful的架构中GET对应于资源的Read,POST对应于Create PUT对应于Update, DELETE对应于Delete 不管POST或GET,都用于向服务器请求某个WEB资源,这两种方式的区别主要表现在数据传递上: 如请求方式为GET方式,则可以在请求的URL地址后以?的形式带上交给服务器的数据,多个数据之间以&进行分隔,例如: GET /mail/1.html?name=abc&password=xyz HTTP/1.1 GET方式的特点:在URL地址后附带的参数是有限制的,其数据容量通常不能超过

9、1K。 如请求方式为POST方式,则可以在请求的实体内容中向服务器发送数据,Post方式的特点:传送的数据量无限制。,供电子商务专业使用,HTTP Request的消息头Head,用于HTTP请求中的常用头 Accept: text/html,image/* Accept-Charset: ISO-8859-1 Accept-Encoding: gzip,compress Accept-Language: en-us,zh-cn Host: www.it315.org:80 If-Modified-Since: Tue, 11 Jul 2000 18:23:51 GMT Referer: ht

10、tp:/www.it315.org/index.jsp User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0) Cookie Connection: close/Keep-Alive Date: Tue, 11 Jul 2000 18:23:51 GMT,供电子商务专业使用,Cache If-Modified-Since vs. Last-Modified/Expires If-None-Match vs. ETag Pragma vs. Cache-Control Client Accept vs. Content-Typ

11、e: text/html; charset=utf-8 Accept-Encoding vs. Content-Encoding, Vary Accept-Language vs. Content-Language Accept-Charset vs. Charset User-Agent vs. Server Cookies/Login Cookie vs. Set-Cookie P3P 跨域设置Cookie, 这样可以解决iframe跨域访问cookie的问题 Entity Content-Length: 38 Content-Type,供电子商务专业使用,Miscellaneous 头域

12、 Referer: 提供了Request的上下文信息的服务器,告诉服务器我是从哪个链接过来的,比如从我主页上链接到一个朋友那里,他的服务器就能够从HTTP Referer中统计出每天有多少用户点击我主页上的链接访问他的网站。(谁推荐过来的?) Transport 头域 Connection : keep-alive | close Host :(发送请求时,该报头域是必需的)即url中的主机,供电子商务专业使用,供电子商务专业使用,If-None-Match和ETag一起工作,工作原理是在HTTP Response中添加ETag信息。 当用户再次请求该资源时,将在HTTP Request 中加

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

14、Thu, 09 Feb 2012 09:07:57 GMT,供电子商务专业使用,供电子商务专业使用,HTTP Response响应,举例: HTTP/1.1 200 OK Server: Microsoft-IIS/5.0 Date: Thu, 13 Jul 2000 05:46:53 GMT Content-Length: 2291 Content-Type: text/html Cache-control: private ,一个HTTP响应代表服务器向客户端回送的数据,它包括: 一个状态行、若干消息头、以及实体内容 。,状态行,一个空行,状态行用于描述服务器 对请求的处理结果。,消息头用

15、于描述服务器 的基本信息,以及数据 的描述,服务器通过这 些数据的描述信息,可 以通知客户端如何处理 等一会儿它回送的数据。,代表服务器向客户端 回送的数据,供电子商务专业使用,HTTP Response状态行,状态行 格式: HTTP版本号 状态码 原因叙述 举例:HTTP/1.1 200 OK 状态码用于表示服务器对请求的处理结果,它是一个三位的十进制数。响应状态码分为5类,如下所示:,供电子商务专业使用,HTTP Reponse常用响应头,HTTP请求中的常用响应头 Location: http:/www.it315.org/index.jsp Server:apache tomcat

16、Content-Encoding: gzip Content-Length: 80 Content-Language: zh-cn Content-Type: text/html; charset=GB2312 Last-Modified: Tue, 11 Jul 2000 18:23:51 GMT Refresh: 1;url=http:/www.it315.org Content-Disposition: attachment; filename=aaa.zip Transfer-Encoding: chunked Set-Cookie:SS=Q0=5Lb_nQ; path=/search

17、 ETag: W/“7777-1242234904000“ Expires: -1 Cache-Control: no-cache Pragma: no-cache Connection: close/Keep-Alive Date: Tue, 11 Jul 2000 18:23:51 GMT,供电子商务专业使用,HTTP实用头字段,HTTP请求头字段 Range头指示服务器只传输一部分Web资源。这个头可以用来实现断点续传功能。Range字段可以通过三种格式设置要传输的字节范围: Range: bytes=1000-2000 传输范围从1000到2000字节。 Range: bytes=10

18、00- 传输Web资源中第1000个字节以后的所有内容。 Range bytes=1000 传输最后1000个字节。 HTTP响应消息头字段 Accept-Ranges:这个字段说明Web服务器是否支持Range支持,则返回Accept-Ranges: bytes,如果不支持,则返回Accept-Ranges: none. Content-Range:指定了返回的Web资源的字节范围。这个字段值的格式是:例子: Content-Range:1000-3000/5000,供电子商务专业使用,Request/Response的结构,HTTP请求: 请求行 请求头(Request Header) 请

19、求正文 HTTP 响应: 状态行 响应头(Response Header) 响应正文,供电子商务专业使用,Request,供电子商务专业使用,Response,供电子商务专业使用,实验1 在命令行使用telnet,telnet : 80 请求: GET / HTTP/1.1 host: ,供电子商务专业使用,实验2 Live HTTP headers分析,供电子商务专业使用,使用firefox浏览器所带插件 Live HTTP headers分析,供电子商务专业使用,GET / HTTP/1.1 Host: User-Agent: Mozilla/5.0 (Windows; U; Windo

20、ws NT 5.2; zh-CN; rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: zh-cn,zh;q=0.5 Accept-Encoding: gzip,deflate Accept-Charset: GB2312,utf-8;q=0.7,*;q=0.7 Keep-Alive: 300 Connection: keep-alive Cookie: PREF=ID=8cc8b2eb5

21、5b74f2a:NW=1:TM=1266683866:LM=1266683866:S=fCdngTNGhnC8064p; NID=31=oHQgPfAwotISZLam-YuXwG02CxD0VPR1TJXbOGVtcAqNCWji0WsjS2Set1TXWRiTRtWWMKnswdMp1vnowRZvTTu7J7xiz8Cq_ckDZ_TQQF4BM93uAZ_68JLlgUl2inI9 Cache-Control: max-age=0,请求信息 页面,供电子商务专业使用,HTTP/1.1 200 OK Date: Sat, 20 Feb 2010 16:38:43 GMT Expires:

22、 -1 Cache-Control: private, max-age=0 Content-Type: text/html; charset=UTF-8 Set-Cookie: PREF=ID=8cc8b2eb55b74f2a:U=508220fd430fc31b:NW=1:TM=1266683866:LM=1266683923:S=hSB5vyj1PCQg_BMP; expires=Mon, 20-Feb-2012 16:38:43 GMT; path=/; domain= Server: gws /google web server X-XSS-Protection: 0 /过滤器不对其网

23、站内容检查 Content-Encoding: gzip /数据被要求用gzip 压缩 Transfer-Encoding: chunked /Chunked编码传输,响应信息,供电子商务专业使用,请求信息:本地127.0.0.1页面,GET / HTTP/1.1 Host: 127.0.0.1 User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.2; zh-CN; rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2 Accept: text/html,application/xhtml+xml,applicatio

24、n/xml;q=0.9,*/*;q=0.8 Accept-Language: zh-cn,zh;q=0.5 Accept-Encoding: gzip,deflate Accept-Charset: GB2312,utf-8;q=0.7,*;q=0.7 Keep-Alive: 300 Connection: keep-alive Cookie: ASPSESSIONIDQSRCBSDT=CMOJLNPDGMILLEIPIFAFEMIK Cache-Control: max-age=0,供电子商务专业使用,响应信息:,HTTP/1.1 200 OK Date: Sat, 20 Feb 2010

25、15:15:48 GMT Server: Microsoft-IIS/6.0 X-Powered-By: ASP.NET Content-Length: 3807 Content-Type: text/html Cache-Control: private,供电子商务专业使用,HTTP应用开发方法,HTTP协议从通信的角度贯穿了应用开发的多个层次,包括了:HTTP客户程序、HTTP服务器程序、服务器端应用程序,代理服务器,CGI JSP ASP PHP,IE 搜索引擎,供电子商务专业使用,作业,请写一篇关于HTTP协议的笔记,要求: 描述清楚HTTP请求、响应的格式 请求头和响应头中各个头字段的含义 如果浏览器传递给WEB服务器的参数内容超过1K,应该使用那种方式发送请求消息? 请描述200、302、304、404和500等响应状态码所表示的意义。 请列举三种禁止浏览器缓存的头字段,并写出相应的设置值。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1