Web编程技术-编程基础.ppt
《Web编程技术-编程基础.ppt》由会员分享,可在线阅读,更多相关《Web编程技术-编程基础.ppt(127页珍藏版)》请在三一文库上搜索。
1、,Web编程技术 -Web编程基础(1),潘 冰 ,Web编程基础,HTTP协议 HTML语言 CSS JavaScript语言 DHTML,HTTP,1 HTTP概述 HTTP的定义、功能、特点等。 2 HTTP中的有关术语 请求、响应、代理、缓存等 3 HTTP原理 4 HTTP格式,教学要求,了解HTTP的定义,功能和特点。 熟悉HTTP相关术语。 理解HTTP工作原理。 了解HTTP消息的类型与一般格式。 了解HTTP请求消息的格式,理解一些重要的HTTP请求方法和请求头字段。 了解HTTP响应消息的格式,理解一些重要的HTTP响应状态码和响应头字段。 了解HTTP消息中实体的定义,理
2、解一些重要的HTTP实体头字段。,1 HTTP概述,HTTP的全称是HyperText Transfer Protocol,即超文本传输协议。 一种应用层协议,基于TCP协议。 规定了客户与服务器之间交互的各种消息。,1 HTTP概述,Web上的文件传输 通过使用HTTP协议,客户可以从Web服务器上下载几乎所有类型的文件,包括HTML文件,图像/视频/音频等多媒体文件,Java Applet等对象,甚至应用程序等。同样,客户也可以向Web服务器上传几乎所有类型的文件。,HTTP,1 HTTP概述,基于Web的动态、交互应用 通过使用HTTP协议,可以将用户在客户端输入的各种信息(例如,购物时
3、需要的姓名、信用卡号等)提交给Web服务器,从而实现基于Web的动态、交互式应用。,1 HTTP概述,客户/服务器模式 简单快速 HTTP使用单个的连接来发送请求和传输文件。每个客户的请求指出了请求的方法以及该方法所作用的资源的地址或路径。,1 HTTP概述,无持久性连接 HTTP 1.0协议在每次连接时只处理一个请求,服务器处理完客户的请求,并收到客户的应答后,即断开连接。 HTTP 1.1中引入了永久连接,即每次连接可以处理多个请求。,1 HTTP概述,无状态 HTTP协议是无状态协议,无状态是指协议对于事务处理没有记忆能力。 对于开发基于Web的动态、交互应用而言,HTTP协议的无状态性
4、则带来了不便。这些应用往往需要保留客户的状态。此时,应用程序的开发人员必须使用一些特别的方法来克服这一困难。,1 HTTP概述,不同目的的用户,掌握的程度不同: 最终的浏览者:不需要了解 Web应用开发人员:理解并熟练地利用 Web客户端浏览软件和Web服务器的开发人员:熟练掌握并能付诸于实现,2 HTTP协议工作原理,http:/ 客户机向服务器发送请求。 HTTP请求报文包含以下内容: 请求方法(method),例如:get。 统一资源标识符URI。 协议版本号(version),通常为HTTP/1.0或HTTP/1.1。 MIME类型 ,2 HTTP协议工作原理,服务器向客户发送响应。
5、服务器在收到客户的请求后,按照客户的要求对指定资源进行适当处理(例如检索到客户所需的文件),并给予相应的响应。 HTTP响应报文包含以下内容: 一个状态行,包括: 消息的协议版本号(version) 一个成功或错误的状态码(success or error code) 还可能会有实体的正文内容(body content) ,2 HTTP协议工作原理,2 HTTP协议工作原理,2 HTTP协议工作原理,3 HTTP请求,3 HTTP请求,请求行包含以下内容: 请求方法 URI HTTP版本号 请求行结束的回车换行(CRLF),3 HTTP请求,请求方法(Method) 描述对于指定的资源应该执行
6、的动作。 方法字符串是大小写敏感的。,3 HTTP请求,1.1.1 请求方法(Method) 在HTTP/1.0中给出了3种请求方法: GET HEAD POST 在HTTP/1.1中又引入了5种新的请求方法: PUT DELETE TRACE CONNECT OPTIONS,3 HTTP请求,1 GET方法 GET方法的含义是获取由Request-URI指定的任意资源。 如果Request-URI指向一个输出数据的过程(例:位于Web服务器上的CGI程序),那么该过程输出的数据将被作为响应消息的实体而返回,而不是返回过程的源程序。 GET方法的响应有时可以被缓存系统保存。,有条件的GET方法
7、 当请求消息中包含“If-Modified-Since”等头字段时,GET方法的语义则转变为“有条件地获取”。 “有条件的GET方法”意味着只有当指定的资源满足头字段的要求时才会被返回。 可以使客户仅通过单个请求就更新缓存中的内容,或者避免重复下载缓存中已有的内容,从而减少不必要的网络流量。,3 HTTP请求,3 HTTP请求,捕获HTTP数据,部分的GET方法 当请求消息中包含“Range”头字段时,GET方法的语义则转变为“部分地获取”。 “部分的GET方法”意味着只传输指定资源的某些特定部分。 可以使客户避免下载指定资源的已有部分,从而减少不必要的网络流量。,3 HTTP请求,3 HTT
8、P请求,2 HEAD方法 HEAD方法的响应消息中不包含消息体,即服务器并不返回客户所请求的资源,而是仅在响应消息的消息头中包含关于指定资源的一些元信息。 这些元信息对资源属性作了描述,例如:最后修改时间、大小等。 该方法常常用于测试服务器上资源的有效性(是否存在)、可访问性以及最近是否被修改过等特征。,3 HTTP请求,3 POST方法 POST方法的作用是要求服务器将请求中包含的实体作为Request-URI指定资源的一部分。 如果指定的资源是服务器上的一个数据处理过程(例如CGI程序),则服务器应将请求消息中包含的实体(通常是用户在HTML页面的FORM中提交的内容)作为数据块提交给该过
9、程。 如果指定的资源是新闻组(newsgroup)、BBS等,则服务器应该将请求消息中包含的实体作为一篇新的文章张贴到其上。 如果指定的资源是数据库,则服务器应该将请求消息中包含的实体作为一条新记录添加到其中。,3 HTTP请求,GET方法和POST方法 GET:当客户端要从服务器中读取文档时,使用GET方法。GET方法要求服务器将URL定位的资源放在响应报文的数据部分,回送给客户端。使用GET方法时,请求参数和对应的值附 加在URL后面,利用一个问号(“?”)代表URL的结尾与请求参数的开始,传递参数长度受限制。例如,/index.jsp?id=100&op=bind。 POST:当客户端给
10、服务器提供信息 较多时可以使用POST方法。POST方法将请求参数封装在HTTP请求数据中,以名称/值的形式出现,可以传输大量数据。,3 HTTP请求,4 PUT方法 PUT方法的作用是将请求消息中包含的实体存储到由Request-URI所标识的服务器上的特定位置。 如果Request-URI指向一个已有的资源,请求消息中包含的实体将被作为源服务器上资源的修改版本; 如果Request-URI指向的资源并不存在,那么源服务器将创建该资源,并将请求消息中所包含的实体作为资源的内容。,3 HTTP请求,PUT方法与POST方法的区别 使用POST方法的请求消息中的Request-URI标识着客户希
11、望服务器使用哪个资源来处理请求消息中包含的实体。该资源可以是一个数据处理过程,或者是其它协议的网关。(新增数据用) 使用PUT方法的请求消息中的RequestURI标识着客户希望将请求消息中包含的实体存储到服务器上的具体位置。(资源是存在的) (修改数据用),3 HTTP请求,5 DELETE方法 DELETE方法的作用是请求服务器删除Request-URI所指定的资源。当服务器成功地执行了操作后,向客户返回成功的状态码。,3 HTTP请求,1.1.2 请求URI 请求URI用于指明请求方法所作用的资源。 请求URI可以有四种形式,即: Request-URI = “*“ | absolute
12、URI | abs_path | authority 其中,absoluteURI和abs_path最为常用。 AbsoluteURI:请求URI给出了绝对URI的形式表示,例如: GET http:/ HTTP/1.0 abs_path:请求URI给出的是资源的绝对路径,而资源所在的宿主机位置由请求头中的“Host”字段表示,例如: GET /pub/WWW/TheProject.html HTTP/1.1 Host: www.w3.org,3 HTTP请求,请求头中的各个字段使得客户可以向服务器传送有关请求的附加信息以及有关客户本身的信息。 请求头的常见字段: Accept |Accept
13、-Charset | Accept-Encoding| Accept-Language | Authorization | connection| content-length |From | Host |cookie | If-Modified-Since | If-Unmodified-Since |If-Match | If-None-Match |If-Range | Max-Forwards | Proxy-Authorization | Range | Referer | TE | User-Agent,3 HTTP请求,Accept 该字段表示客户在接收响应时所能接受的特定媒体类
14、型。 MIME (Multipurpose Internet Mail Extensions) ,多功能Internet 邮件扩充服务,是描述消息内容类型的因特网标准。 MIME 消息能包含文本、图像、音频、视频以及其他应用程序专用的数据。 例如: “Accept : text/html”表示客户可以接受HTML文件 “Accept : text/*” 表示客户可以接受各种文本文件 “Accept : */*” 则表示客户可以接受所有格式文件。 HTTP协议中通过使用Accept等请求头字段来实现“服务器驱动的”内容协商。,3 HTTP请求,常见的MIME类型 超文本标记语言文本 .html
15、text/html xml文档 .xml text/xml XHTML文档 .xhtml application/xhtml+xml 普通文本 .txt text/plain RTF文本 .rtf application/rtf PDF文档 .pdf application/pdf Microsoft Word文件 .word application/msword PNG图像 .png image/png GIF图形 .gif image/gif JPEG图形 .jpeg,.jpg image/jpeg au声音文件 .au audio/basic MIDI音乐文件 mid,.midi aud
16、io/midi,audio/x-midi RealAudio音乐文件 .ra, .ram audio/x-pn-realaudio MPEG文件 .mpg,.mpeg video/mpeg AVI文件 .avi video/x-msvideo GZIP文件 .gz application/x-gzip TAR文件 .tar application/x-tar 任意的二进制数据 application/octet-stream,3 HTTP请求,Accept-Charset 客户在接收响应时所能接受的特定的字符集. Accept-Encoding 客户在接收响应时所能接受的编码方法. Accep
17、t-Language 客户在接收响应时所能接受的语言。,3 HTTP请求,Host 该字段表示所请求的资源所在的Internet宿主机及其端口位置。端口为缺省值80。,Connection 表示是否需要持久连接。如,Keep-Alive或HTTP1.1(默认持久连接)。 当网页有多个对象时,可以减少下载时间。,3 HTTP请求,Cookie Cookie是服务器在本地机器上存储一段小文本,用来在客户端保持状态,解决HTTP协议无状态的缺陷. 服务器用HTTP头向客户端发送cookies,在客户终端,浏览器解析这些cookies并将它们保存为一个本地文件,它会自动将同一服务器的任何请求缚上这些c
18、ookies,3 HTTP请求,If-Modified-Since 该字段表示如果所请求的实体在某个时间之后没有被修改过,就不要返回该实体。此时,返回的响应为304(notmodified),且响应中没有消息体。 该字段的目的是以最小的代价来有效地更新缓存过的资源。 If-Unmodified-Since 与If-Modified-Since恰恰相反。它表示:如果所请求的资源在某个时间之后没有被修改过的话,那么就对该资源执行指定的操作方法。,3 HTTP请求,清空 缓存后访问,再刷新,响应,不带消息体,User-Agent 该字段给出了发起请求的客户的有关信息,通常为浏览器名称和版本号。,3
19、HTTP请求,4 HTTP响应,4 HTTP响应,HTTP-Version SP Status-Code SP Reason-Phrase CRLF HTTP-Version请求版本 Status-Code状态码: 3位数字的整数,表示服务器试图理解并满足客户请求的结果。 Reason-Phrase原因说明: 为“状态码”提供一个简短的文本形式的描述。 通常,“状态码”是供程序使用的,而“原因说明”是供用户理解的。,4 HTTP响应,HTTP响应状态码 1xx: 一般性消息,表示服务器收到客户的请求,正在进行后续处理。它们代表着服务器给出的一种暂时性的响应。此时,在响应消息中没有消息体。 2x
20、x: 成功,表示服务器已经成功地接收,理解或接受了客户的请求。 3xx: 重定向,表示为完成请求客户代理还需要采取进一步的动作。 4xx: 客户错误,表示客户的请求有语法错误或不能满足。此时,服务器通常会在响应消息的消息体中对出错的原因进行解释。 5xx: 服务器错误,表示服务器无法完成一个正确地客户请求。,4 HTTP响应,HTTP常用响应状态码 200 OK : 表示服务器已经成功地完成了客户的请求,同时,结果资源已经在响应消息的消息体中返回。 对于使用GET方法的客户请求而言,响应消息的实体中包含了客户所请求的资源(例如:文件或者脚本程序的输出等); 对于使用HEAD方法的客户请求而言,
21、响应消息中仅包含了有关该资源的元信息(在实体头字段中); 对于使用POST方法的客户请求而言,响应消息的实体中包含了服务器执行特定动作后的结果(例如:脚本程序的输出等); 对于使用TRACE方法的客户请求而言,服务器将客户请求消息在响应消息的实体中原样返回。,4 HTTP响应,HTTP常用响应状态码 201 Created : 表示服务器已经成功地完成了客户的请求并创建了一个新的资源。通常,服务器在客户使用PUT方法提出请求时返回这种响应;此时,在响应消息中往往还包含有关新创建资源的元信息。 206 Partial Content: 表示服务器已经成功地完成了客户提出的“部分的获取”,并在响应
22、消息的实体中包含了客户所请求资源的特定部分。同时,响应消息中还会包含有“Date”、“Content-Type”、“Content-Range”、“Cache-Control”等头字段。,4 HTTP响应,HTTP常用响应状态码 301 Moved Permanently: 表示客户使用Request-URI所请求的资源已经被移到了新的位置。此时,服务器在返回的响应消息中将新位置的URI保存在“Location”头字段中,任何对该资源的引用和访问都应该使用该新的URI。 304 Not Modified: 如果客户使用“有条件的GET”方法(例如:使用“If-Modified-Since”请求
23、头字段)来提出请求,而所请求的资源没有被修改过,那么服务器将返回该状态码。此时,响应消息中可以包含Date”、“Cache-Control”等头字段,但是不能够包含消息体。,4 HTTP响应,HTTP常用响应状态码 400 Bad Request: 由于错误的语法而使得服务器无法理解客户的请求。客户必须对请求进行修改后才能够重新向服务器发送请 401 Unauthorized: 表示服务器需要对用户进行认证后才能够完成客户的请求。此时,服务器在响应消息中要给出“WWW Authenticate”头字段,以指明对于客户的请求服务器需要对用户进行哪些认证(例如:用户名和密码)。客户在收到该响应后,
24、可以在请求中添加“Authorization”头字段,从而在重新发送请求给服务器的同时将用户认证消息也给服务器。,4 HTTP响应,HTTP常用响应状态码 403 Forbidden: 表示服务器能够理解客户对请求,但拒绝执行。此时,服务器可以在响应消息的实体中给出拒绝执行的理由。 404 Not Found: 服务器无法找到客户在请求中所指定的资源。,4 HTTP响应,HTTP常用响应状态码 405 Method Not Allowed: 表示服务器不允许客户对Request-URI所指定的资源执行特定的操作。此时,服务器会在响应消息中使用“Allow”头字段给出允许对资源所执行的各种操作。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Web 编程 技术 基础
链接地址:https://www.31doc.com/p-3486242.html