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

链接地址:https://www.31ppt.com/p-6523374.html