必须掌握的http协议知识_第1页
必须掌握的http协议知识_第2页
必须掌握的http协议知识_第3页
必须掌握的http协议知识_第4页
必须掌握的http协议知识_第5页
免费预览已结束,剩余12页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、HTTP 协议HTTP 协议( HyperText Transfer Protocol ,超文本传输协议)是因特网上应用最为广泛的一种网络传输协议。所有的 www 文件都必须遵守这个标准。设计HTTP 最初的目的是为了提供一种发布和接收HTML 页面的方法。是用于从万维网( Wide Web )服务器传输超文本到本地浏览器的传送协议。HTTP/0.9已过时。只接受GET 一种请求方法,没有在通讯中指定版本号,且不支持请求头。由于该版本不支持 POST 方法,所以客户端无法向服务器传递太多信息。HTTP/1.0这是第一个在通讯中指定版本号的 HTTP 协议版本,至今仍被广泛采用,特别是在代理服务

2、器中。HTTP/1.1当前版本。持久连接被默认采用,并能很好地配合代理服务器工作。还支持以管道方式同时发送多个请求,以便降低线路负载,提高传输速度。HTTP/1.1 相较于 HTTP/1.0 协议的区别主要体现在:? 缓存处理? 带宽优化及网络连接的使用? 错误通知的管理? 消息在网络中的发送? 互联网地址的维护? 安全性及完整性HTTP工作原理HTTP协议工作于客户端-服务端架构为上。浏览器作为 HTTP客户端通过URL向 HTTP服务端即 WEB服务器发送所有请求。Web 服务器有:Apache 服务器,IIS 服务器(Internet Information Services )等。We

3、b服务器根据接收到的请求后,向客户端发送响应信息。HTTP默认端口号为80 ,但是你也可以改为 8080或者其他端口。HTTP三点注意事项:? HTTP是无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请 求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。? HTTP是媒体独立的:这意味着,只要客户端和服务器知道如何处理的数据内容,任何类 型的数据都可以通过 HTTP发送。客户端以及服务器指定使用适合的MIME-type 内容类型。? HTTP是无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能 力。缺少状态意味着如果后续处理需要前面的信

4、息,则它必须重传,这样可能导致每次连 接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。以下图表展示了 HTTP协议通信流程:HTTP请求方法HTTP是基于客户端/服务端(C/S )的架构模型,通过一个可靠的链接来交换信息,是一个无状态的请求/响应协议。一个HTTP客户端”是一个应用程序(Web浏览器或其他任何客户端),通过连接到服务器达到向服务器发送一个或多个 HTTP的请求的目的。一个HTTP服务器”同样也是一个应用程序(通常是一个 Web服务,如Apache Web 服务器或IIS服务 器等),通过接收客户端的请求并向客户端发送HTTP响应数据。HTTP使用统一资源标

5、识符(Uniform Resource Identifiers, URI )来传输数据和建立连接。一旦建立连接后,数据消息就通过类似Internet 邮件所使用的格式RFC5322和多用途Internet邮件扩展(MIME ) RFC2045来传送。客户端请求消息客户端发送一个 HTTP请求到服务器的请求消息包括以下格式:请求行( request line)、请求头部(header)、空行和请求数据四个部分组成,下图给出了请求报文的一般格式。请求行服务器响应消息HTTP响应也由四个部分组成,分别是:状态行、消息报头、空行和响应正文状态行酒息报头1.1 2CS OKDa-fl:的二,31 Dec

6、 2005 3,舁t59 GNT jCjiEnt-Tyte; texL JicrLl;Z20-JC;9-1P 7.7.卜面的就昂嘀府IF文了根据HTTP标准,HTTP请求可以使用多种请求方法。HTTP1.0定义了三种请求方法:GET, POST 和HEAD方法。HTTP1.1 新增了五种请求方法:OPTIONS, PUT, DELETE, TRACE 和 CONNECT 方序 号方法描述1GET请求指定的页面信息,并返回实体主体。2HEAD类似于get请求,只不过返回的响应中没有具体的内容,用于获取报头3POST向指定资源提交数据进行处理请求 (例如提交表单或者上传文件)。数据 被包含在请求体

7、中。POST请求可能会导致新的资源的建立和 /或已有资 源的修改。4PUT从客户端向服务器传送的数据取代指定的文档的内容。5DELETE请求服务器删除指定的页面。6CONNECTHTTP/1.1 协议中预留给能够将连接改为管道方式的代理服务器。7OPTIONS允许客户端查看服务器的性能。8TRACE回显服务器收到的请求,主要用于测试或诊断。法;HTTP响应头信息HTTP请求头提供了关于请求,响应或者其他的发送实体的信息。在本章节中我们将具体 来介绍HTTP请求头信息。应答头说明Allow服务器支持哪些请求方法(如GET、POST等)。ContentEncoding文档的编码(Encode )方

8、法。只有在解码之后才可以得到 Content-Type 头指te 的内容类型。利用 gzip压缩文档能够显著地减少 HTML文档的下载时间。Java 的GZIPOutputStream可以很方便地进行 gzip压缩,但只有 Unix上的Netscape 和 Windows 上的IE 4、IE 5才支持它。因此, Servlet 应该通过查 看 Accept-Encoding 头(即 request.getHeader(Accept- Encoding)检查浏览器是否支持 gzip ,为支持gzip的浏览器返回经gzip压缩的HTML贝囿,为 其他浏览器返回普通页面。ContentLength表

9、示内容长度。只有当浏览器使用持久HTTP连接时才需要这个数据。如果你想要利用持久连接的优势,可以把输出文档写入ByteArrayOutputStram,完成后查看其大小,然后把该值放入 Content-Length头,最后通过byteArrayStream.writeTo(response.getOutputStream()发送内容。ContentType表示后面的文档属于什么MIME类型。Servlet默认为text/plain ,但通常需要显式地 指定为text/html 。由 于经常 要设置 Content-Type ,因 此 HttpServletResponse提供了一个专用的方法s

10、etContentType 。Date当前的GMT时间。你可以用setDateHeader来设置这个头以避免转换时间格式的麻烦。Expires应该在什么时候认为文档已经过期,从而不再缓存它?Last-Modified文档的最后改动时间。客户可以通过If-Modified-Since请求头提供一个日期,该请求将被视升-个条件GET,只有改动时间迟于指定时间的文档才会返回,否则返回一个 304 (Not Modified )状态。Last-Modified 也可用 setDateHeader 方法来设置。Location表示客户应当到哪里去提取文档。Location通常不是直接设置的,而是通过Ht

11、tpServletResponse的sendRedirect方法,该方法同时设置状态代码为302 。Refresh表示浏览器应该在多少时间之后刷新文档,以秒计。除了刷新当前文档之外,你还可以通过setHeader(Refresh, 5; URL=)让浏览器读取指定的页面。注 意这种功能通常是通过设置HTML 页面HEAD 区的V META HIIP-EQUIV=Refresh CONTENT=5;URL=实现,这是因为,自动刷新或重定向对于那些不能使用 CGI或Servlet 的HTML编写者十分重要。但是,对于 Servlet来说,直接设置 Refresh头更加方便。HTTP状态码注思Ref

12、resh 的思义是N秒之后刷 新本贝闻或访问指te贝囿 ,而不是每隔N 秒刷新本页面或访问指定页面 。因此,连续刷新要求每次都发送一个 Refresh头, 而发送204状态代码则可以阻止浏览器继续刷新,不管是使用 Refresh头还是 v META HIIP-EQUIV=Refresh”。注意 Refresh 头不属于 HTTP 1.1正式规范的一部分,而是一个扩展,但 Netscape 和IE都支持它。Server服务器名字。Servlet 一般不设置这个值,而是由 Web服务器自己设置。SetCookie设置和页面关联的Cookie 。 Servlet 不应使用 response.setH

13、eader(Set-Cookie,),而是应使用HttpServletResponse提供的专用方法 addCookie 。参见下文有关Cookie设置的讨论。客户应该在Authorization 头中提供什么类型的授权信息?在包含401 (Unauthorized )状态行的 应答中这个头是必需的。例如, response.setHeader(, BASIC realm= executives )。注意Servlet 一般不进行这方面的处理,而是让 Web服务器的专门机制来控制受密码保护页面的访问(例如 .htaccess )。当浏览者访问一个网页时,浏览者的浏览器会向网页所在服务器发出请求

14、。当浏览器接收并显示网页前,此网页所在的服务器会返回一个包含HTTP状态码的信息头(serverheader )用以响应浏览器的请求。HTTP状态码的英文为 HTTP Status Code 。下面是常见的HTTP状态码:? 200 - 请求成功? 301 -资源(网页等)被永久转移到其它URL? 404 -请求的资源(网页等)不存在? 500 -内部服务器错误HTTP状态码分类HTTP状态码由三个十进制数字组成,第一个十进制数字定义了状态码的类型,后两个数 字没有分类的作用。HTTP状态码共分为5种类型:分类HIIP状态码分类分类描述1*信息,服务器收到请求,需要请求者继续执行操作2*成功,

15、操作被成功接收并处理3*重定向,需要进一步的操作以完成请求4*客户端错误,请求包含语法错误或无法完成请求5*服务器错误,服务器在处理请求的过程中发生了错误HTTP状态他列表状态码状态码英文名称中文描述100Continue继续。客户端应继续其请求101SwitchingProtocols切换协议。服务器根据客户端的请求切换协议。只能切换到更高级的协议,例如,切换到 HTTP的新版本协议200OK请求成功。一用于 GET与POST请求201Created已创建。成功请求并创建了新的资源202Accepted已接受。已经接殳请求,但未处理完成203Non-AuthoritativeInformat

16、ion非授权信息。请求成功。但返回的meta信息不在原始的服务器,而是一个副本204No Content无内容。服务器成功处理,但未返回内容。在未更新网页的情 况下,可确保浏览器继续显示当前文档205Reset Content重置内容。服务器处理成功,用户终端(例如:浏览器)应重 置文档视图。可通过此返回码清除浏览器的表单域206Partial Content部分内容。服务器成功处理了部分GET请求300MultipleChoices多种选择。请求的资源可包括多个位置, 相应可返回一个资源特征与地址的列表用于用户终端(例如:浏览器)选择301MovedPermanently永久移动。请求的资源

17、已被永久的移动到新URI ,返回信息会包括新的URI ,浏览器会自动定向到新 URI。今后任何新 的请求都应使用新的 URI代替302Found临时移动。与301类似。但资源只是临时被移动。客户端应继续使用原有 URI303See Other查看具它地址。与 301类似。使用 GEI和POSI请求查看304Not Modified未修改。所请求的资源未修改, 服务器返回此状态码时, 不会 返回任何资源。客户端通常会缓存访问过的资源, 通过提供一个头信息指出客户端希望只返回在指定日期之后修改的资源305Use Proxy使用代理。所请求的资源必须通过代理访问306Unused已经被废弃的 HTT

18、P状态码307TemporaryRedirect临时重定向。与 302类似。使用 GET请求重定向400Bad Request客户端请求的语法错误,服务器无法理解401Unauthorized请求要求用户的身份认证402PaymentRequired保留,将来使用403Forbidden服务器理解请求客户端的请求,但是拒绝执行此请求404Not Found服务器无法根据客户端的请求找到资源 (网页)。通过此代码, 网站设计人员可设置您所请求的资源无法找到的个性页面405MethodNotAllowed客户端请求中的方法被禁止406NotAcceptable服务器无法根据客户端请求的内容特性完成

19、请求407ProxyAuthenticationRequired请求要求代理的身份认证,与401类似,但请求者应当使用代理进行授权408Request Timeout服务器等待客户端发送的请求时间过长,超时409Conflict服务器完成客户端的 PUT请求是可能返回此代码, 服务器处 理请求时发生了冲突410Gone客户端请求的资源已经不存在。410不向于404 ,如果资源以前有现在被永久删除了可使用410代码,网站设计人员可通过301代码指定资源的新位置411LengthRequired服务器尢法处埋客户骊发送的小吊Content-Length 的请求信息412PreconditionFa

20、iled客户端请求信息的先决条件错误413Request EntityToo Large由于请求的实体过大, 服务器无法处理,因此拒绝请求。为防 止客户端的连续请求,服务器可能会关闭连接。如果只是服务 器暂时无法处理,则会包含一个 Retry-After 的响应信息414Request-URIToo Large请求的URI过长(URI通常为网址),服务器无法处理415UnsupportedMedia Type服务器无法处理请求附带的媒体格式416Requested rangenotsatisfiable客户端请求的范围无效417ExpectationFailed服务器无法满足 Expect的请

21、求头信息500InternalServer Error服务器内部错误,无法完成请求501NotImplemented服务器不支持请求的功能,无法完成请求502Bad Gateway充当网关或代理的服务器,从远端服务器接收到了一个无效 的请求503ServiceUnavailable由于超载或系统维护,服务器暂时的无法处理客户端的请求。延时的长度可包含在服务器的Retry-After 头信息中504Gateway Time-out充当网关或代理的服务器,未及时从远端服务器获取请求505HTTP Version not supported服务器不支持请求的 HIIP协议的版本,无法完成处理HTTP

22、 content-typeContent-Type ,内容类型,一般是指网页中存在的 Content-Type ,用于定义网络文件的类 型和网页的编码,决定浏览器将以什么形式、 什么编码读取这个文件, 这就是经常看到一些 Asp网页点击的结果却是下载到的一个文件或一张图片的原因。HTTP content-type 对照表文件扩展名Content-Type(Mime-Type)文件扩 展名Content-Type(Mime-Type).* (二进制 流,不知道卜 载文件类型)application/octet-stream.tifimage/tiff.001application/x-001.3

23、01application/x-301.323text/h323.906application/x-906.907drawing/907.a11application/x-a11.acpaudio/x-mei-aac.aiapplication/postscript.aifaudio/aiff.aifcaudio/aiff.aiffaudio/aiff.anvapplication/x-anv.asatext/asa.asfvideo/x-ms-asf.asptext/asp.asxvideo/x-ms-asf.auaudio/basic.avivideo/avi.awfapplication

24、/text/xml.bmpapplication/x-bmp.botapplication/x-bot.c4tapplication/x-c4t.c90application/x-c90.calapplication/x-cals.catapplication/vnd.ms-pki.seccat.cdfapplication/x-netcdf.cdrapplication/x-cdr.celapplication/x-cel.cerapplication/x-x509-ca-cert.cg4application/x-g4.cgmapplicatio

25、n/x-cgm.citapplication/x-cit.classjava/*.cmltext/xml.cmpapplication/x-cmp.cmxapplication/x-cmx.cotapplication/x-cot.crlapplication/pkix-crl.crtapplication/x-x509-ca-cert.csiapplication/x-csi.csstext/css.cutapplication/x-cut.dbfapplication/x-dbf.dbmapplication/x-dbm.dbxapplication/x-dbx.dcdtext/xml.d

26、cxapplication/x-dcx.derapplication/x-x509-ca-cert.dgnapplication/x-dgn.dibapplication/x-dib.dllapplication/x-msdownload.docapplication/msword.dotapplication/msword.drwapplication/x-drw.dtdtext/xml.dwfModel/vnd.dwf.dwfapplication/x-dwf.dwgapplication/x-dwg.dxbapplication/x-dxb.dxfapplication/x-dxf.ed

27、napplication/vnd.adobe.edn.emfapplication/x-emf.emlmessage/rfc822.enttext/xml.epiapplication/x-epi.epsapplication/x-ps.epsapplication/postscript.etdapplication/x-ebx.exeapplication/x-msdownload.faximage/fax.fdfapplication/vnd.fdf.fifapplication/fractals.fotext/xml.frmapplication/x-frm.g4application/

28、x-g4.gbrapplication/x-gbr.application/x-.gifimage/gif.gl2application/x-gl2.gp4application/x-gp4.hglapplication/x-hgl.hmrapplication/x-hmr.hpgapplication/x-hpgl.hplapplication/x-hpl.hqxapplication/mac-binhex40.hrfapplication/x-hrf.htaapplication/hta.htctext/x-component.htmtext/html.htmltext/html.httt

29、ext/webviewhtml.htxtext/html.icbapplication/x-icb.icoimage/x-icon.icoapplication/x-ico.iffapplication/x-iff.ig4application/x-g4.igsapplication/x-igs.iiiapplication/x-iphone.imgapplication/x-img.insapplication/x-internet-signup.ispapplication/x-internet-signup.IVFvideo/x-ivf.javajava/*.jfifimage/jpeg

30、.jpeimage/jpeg.jpeapplication/x-jpe.jpegimage/jpeg.jpgimage/jpeg.jpgapplication/x-jpg.jsapplication/x-javascript.jsptext/html.la1audio/x-liquid-file.larapplication/x-laplayer-reg.latexapplication/x-latex.lavsaudio/x-liquid-secure.lbmapplication/x-lbm.lmsffaudio/x-la-lms.lsapplication/x-javascript.lt

31、rapplication/x-ltr.m1vvideo/x-mpeg.m2vvideo/x-mpeg.m3uaudio/mpegurl.m4evideo/mpeg4.macapplication/x-mac.manapplication/x-troff-man.mathtext/xml.mdbapplication/msaccess.mdbapplication/x-mdb.mfpapplication/x-shockwave-flash.mhtmessage/rfc822.mhtmlmessage/rfc822.miapplication/x-mi.midaudio/mid.midiaudi

32、o/application/x-mil.mmltext/xml.mndaudio/x-musicnet-download.mnsaudio/x-musicnet-stream.mochaapplication/x-javascript.movievideo/x-sgi-movie.mp1audio/mp1.mp2audio/mp2.mp2vvideo/mpeg.mp3audio/mp3.mp4video/mpeg4.mpavideo/x-mpg.mpdapplication/vnd.ms-project.mpevideo/x-mpeg.mpegvideo/mpg.mpgvideo

33、/mpg.mpgaaudio/rn-mpeg.mppapplication/vnd.ms-project.mpsvideo/x-mpeg.mptapplication/vnd.ms-project.mpvvideo/mpg.mpv2video/mpeg.mpwapplication/vnd.ms-project.mpxapplication/vnd.ms-project.mtxtext/xml.mxpapplication/image/pnetvue.nrfapplication/x-nrf.nwsmessage/rfc822.odctext/x-ms-odc.outapp

34、lication/x-out.p10application/pkcs10.p12application/x-pkcs12.p7bapplication/x-pkcs7-certificates.p7capplication/pkcs7-mime.p7mapplication/pkcs7-mime.p7rapplication/x-pkcs7-certreqresp.p7sapplication/pkcs7-signature.pc5application/x-pc5.pciapplication/x-pci.pclapplication/x-pcl.pcxapplication/x-pcx.p

35、dfapplication/pdf.pdfapplication/pdf.pdxapplication/vnd.adobe.pdx.pfxapplication/x-pkcs12.pglapplication/x-pgl.picapplication/x-pic.pkoapplication/vnd.ms-pki.pko.plapplication/x-perl.plgtext/html.plsaudio/scpls.pltapplication/x-plt.pngimage/png.pngapplication/x-png.potapplication/vnd.ms-powerpoint.p

36、paapplication/vnd.ms-powerpoint.ppmapplication/x-ppm.ppsapplication/vnd.ms-powerpoint.pptapplication/vnd.ms-powerpoint.pptapplication/x-ppt.prapplication/x-pr.prfapplication/pics-rules.prnapplication/x-prn.prtapplication/x-prt.psapplication/x-ps.psapplication/postscript.ptnapplication/x-ptn.pwzappli

37、cation/vnd.ms-powerpoint.r3ttext/vnd.rn-realtext3d.raaudio/vnd.rn-realaudio.ramaudio/x-pn-realaudio.rasapplication/x-ras.ratapplication/rat-file.rdftext/xml.recapplication/vnd.rn-recording.redapplication/x-red.rgbapplication/x-rgb.rjsapplication/vnd.rn-realsystem-rjs.rjtapplication/vnd.rn-realsystem

38、- rjt.rlcapplication/x-rlc.rleapplication/x-rle.rmapplication/vnd.rn-realmedia.rmfapplication/vnd.adobe.rmf.rmiaudio/mid.rmjapplication/vnd.rn-realsystem- rmj.rmmaudio/x-pn-realaudio.rmpapplication/vnd.rn- rn_music_package.rmsapplication/vnd.rn-realmedia-secure.rmvbapplication/vnd.rn-realmedia- vbr.

39、rmxapplication/vnd.rn-realsystem-rmx.rnxapplication/vnd.rn-realplayer.rpimage/vnd.rn-realpix.rpmaudio/x-pn-realaudio-plugin.rsmlapplication/vnd.rn-rsml.rttext/vnd.rn-realtext.rtfapplication/msword.rtfapplication/x-rtf.rvvideo/vnd.rn-realvideo.samapplication/x-sam.satapplication/x-sat.sdpapplication/

40、sdp.sdwapplication/x-sdw.sitapplication/x-stuffit.slbapplication/x-slb.sldapplication/x-sld.slkdrawing/x-slk.smiapplication/smil.smilapplication/smil.smkapplication/x-smk.sndaudio/basic.soltext/plain.sortext/plain.spcapplication/x-pkcs7-certificates.splapplication/futuresplash.spptext/xml.ssmapplica

41、tion/streamingmedia.sstapplication/vnd.ms- pki.certstore.stlapplication/vnd.ms-pki.stl.stmtext/html.styapplication/x-sty.svgtext/xml.swfapplication/x-shockwave-flash.tdfapplication/x-tdf.tg4application/x-tg4.tgaapplication/x-tga.tifimage/tiff.tifapplication/x-tif.tiffimage/tiff.tldtext/xml.topdrawing/x-top.torrentapplication/x-bittorrent.tsdtext/xml.txttext/plain.uinapplication/x-icq.ulstext/iuls.vcftext/x-vcard.vdaapplication/x-vda.vdxapplication/vnd.visio.vmltext/x

温馨提示

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

评论

0/150

提交评论