必须掌握http协议知识_第1页
必须掌握http协议知识_第2页
必须掌握http协议知识_第3页
必须掌握http协议知识_第4页
必须掌握http协议知识_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

必定掌握的http协议学习知识必定掌握的http协议学习知识16/16必定掌握的http协议学习知识HTTP协议HTTP协议(HyperTextTransferProtocol,超文本传输协议)是因特网上应用最为广泛的一种网络传输协议。所有的

www文件都必定遵守这个标准。设计

HTTP

最初的目的是为了供应一种宣布和接收HTML

页面的方法。是用于从万维网(

WideWeb

)服务器传输超文本到当地阅读器的传达协议

。已过时。只接受GET一种央求方法,没有在通讯中指定版本号,且不支持央求头。因为该版本不支持POST方法,所以客户端无法向服务器传达太多信息。这是第一个在通讯中指定版本号的HTTP协议版本,到此刻仍被广泛采用,特别是在代理服务器中。当前版本。长远连接被默认采用,并能很好地配合代理服务器工作。还支持以管道方式同时发送多个央求,以便降低线路负载,提高传输速度。相较于协议的差异主要表此刻:缓存办理带宽优化及网络连接的使用错误通知的管理信息在网络中的发送互联网地址的保护安全性及完满性HTTP工作原理HTTP

协议工作于客户端

-服务端架构为上。阅读器作为

HTTP

客户端经过

URL

向HTTP

服务端即

WEB

服务器发送所有央求。Web

服务器有:

Apache

服务器,

IIS

服务器(

InternetInformationServices

)等。Web

服务器依照接收到的央求后,向客户端发送响应信息。HTTP

默认端口号为

80,但是你也能够改为

8080

也许其他端口。HTTP三点注意事项:HTTP是无连接:无连接的含义是限制每次连接只办理一个央求。服务器办理完客户的央求,并收到客户的应答后,即断开连接。采用这种方式能够节约传输时间。HTTP是媒体独立的:这意味着,只要客户端和服务器知道如何办理的数据内容,任何类型的数据都能够经过HTTP发送。客户端以及服务器指定使用适合的MIME-type内容类型。HTTP是无状态:HTTP协议是无状态协议。无状态是指协议关于事务办理没有记忆能力。缺少状态意味着若是后续办理需要前面的信息,则它必定重传,这样可能以致每次连接传达的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。以以下图表显现了HTTP协议通讯流程:HTTP信息结构HTTP是基于客户端/服务端(C/S)的架构模型,经过一个可靠的链接来交换信息,是一个无状态的央求/响应协议。一个

HTTP"客户端"是一个应用程序(

Web

阅读器或其他任何客户端),经过连接到服务器达到向服务器发送一个或多个

HTTP

的央求的目的。一个HTTP"服务器"同样也是一个应用程序(平时是一个器等),经过接收客户端的央求并向客户端发送HTTP

Web服务,如响应数据。

ApacheWeb

服务器或

IIS

服务HTTP

使用一致资源表记符(

UniformResourceIdentifiers,URI

)来传输数据和建立连接。一旦建立连接后,数据信息就经过近似

Internet

邮件所使用的格式

[RFC5322]

和多用途Internet

邮件扩展(

MIME

)[RFC2045]

来传达。客户端央求信息客户端发送一个HTTP央求到服务器的央求信息包括以下格式:央求行(requestline)、请求头部(header)、空行和央求数据四个部分组成,以下图给出了央求报文的一般格式。服务器响应信息HTTP响应也由四个部分组成,分别是:状态行、信息报头、空行和响应正文。HTTP央求方法依照HTTP标准,HTTP央求能够使用多种央求方法。定义了三种央求方法:GET,POST和HEAD方法。新增了五种央求方法:OPTIONS,PUT,DELETE,TRACE和CONNECT方序方法描述号GETHEADPOST

央求指定的页面信息,并返回实体主体。近似于get央求,只但是返回的响应中没有详尽的内容,用于获取报头向指定资源提交数据进行办理央求(比方提交表单也许上传文件)。数据被包括在央求体中。POST央求可能会以致新的资源的建立和/或已有资源的更正。4PUT从客户端向服务器传达的数据代替指定的文档的内容。5DELETE央求服务器删除指定的页面。6CONNECT协议中预留给能够将连接改为管道方式的代理服务器。7OPTIONS赞同客户端查察服务器的性能。8TRACE回显服务器收到的央求,主要用于测试或诊断。法;HTTP响应头信息HTTP央求头供应了关于央求,响应也许其他的发送实体的信息。在本章节中我们将详尽来介绍HTTP央求头信息。应答头AllowContent-Encoding

说明服务器支持哪些央求方法(如GET、POST等)。文档的编码(Encode)方法。只有在解码此后才能够获取Content-Type头指定的内容种类。利用gzip压缩文档能够显然地减少HTML文档的下载时间。Java的GZIPOutputStream能够很方便地进行gzip压缩,但只有Unix上的Netscape和Windows上的IE4、IE5才支持它。所以,Servlet应当经过查看Accept-Encoding头(即request.getHeader("Accept-Encoding"))检查阅读器可否支持gzip,为支持gzip的阅读器返回经gzip压缩的HTML页面,为其他阅读器返回一般页面。Content-表示内容长度。只有当阅读器使用长远HTTP连接时才需要这个数据。若是你想Length要利用长远连接的优势,能够把输出文档写入ByteArrayOutputStram,完成后查察其大小,而后把该值放入Content-Length头,最后经过byteArrayStream.writeTo(response.getOutputStream()发送内容。Content-TypeDateExpiresLast-ModifiedLocationRefresh

表示后边的文档属于什么MIME种类。Servlet默认为text/plain,但平时需要显式地指定为text/html。因为常常要设置Content-Type,所以HttpServletResponse供应了一个专用的方法setContentType。当前的GMT时间。你能够用setDateHeader来设置这个头以防备变换时间格式的麻烦。应当在什么时候认为文档已经过期,从而不再缓存它?文档的最后改动时间。客户能够经过If-Modified-Since央求头供应一个日期,该央求将被视为一个条件GET,只有改动时间迟于指准时间的文档才会返回,否则返回一个304(NotModified)状态。Last-Modified也可用setDateHeader方法来设置。表示客户应当到哪里去提取文档。Location平时不是直接设置的,而是经过HttpServletResponse的sendRedirect方法,该方法同时设置状态代码为302。表示阅读器应当在多少时间此后刷新文档,以秒计。除了刷新当前文档之外,你还能够经过setHeader("Refresh","5;URL=")让阅读器读取指定的页面。注意这种功能平时是经过设置HTML页面HEAD区的<METAHTTP-EQUIV="Refresh"CONTENT="5;URL=">实现,这是因为,自动刷新或重定向关于那些不能够使用CGI或Servlet的HTML编写者十分重要。但是,关于Servlet来说,直接设置Refresh头更加方便。ServerSet-Cookie

注意Refresh的意义是"N秒此后刷新本页面或接见指定页面",而不是"每隔N秒刷新本页面或接见指定页面"。所以,连续刷新要求每次都发送一个Refresh头,而发送204状态代码则可以阻拦阅读器连续刷新,无论是使用Refresh头还是<METAHTTP-EQUIV="Refresh"...>。注意Refresh头不属于HTTP正式规范的一部分,而是一个扩展,但Netscape和IE都支持它。服务器名字。Servlet一般不设置这个值,而是由Web服务器自己设置。设置和页面关系的Cookie。Servlet不应使用response.setHeader("Set-Cookie",...),而是应使用HttpServletResponse供应的专用方法addCookie。拜会下文有关Cookie设置的谈论。客户应当在Authorization头中供应什么种类的授权信息?在包括401(Unauthorized)状态行的应答中这个头是必需的。比方,response.setHeader("","BASICrealm=\"executives\"")。注意Servlet一般不进行这方面的办理,而是让Web服务器的特地体系来控制受密码保护页面的接见(比方.htaccess)。HTTP状态码当阅读者接见一个网页时,阅读者的阅读器会向网页所在服务器发出央求。当阅读器接收并显示网页前,此网页所在的服务器会返回一个包括

HTTP

状态码的信息头(

serverheader

)用以响应阅读器的央求。HTTP

状态码的英文为

HTTPStatusCode

。下面是常有的

HTTP

状态码:?200-

央求成功?301-

资源(网页等)被永久转移到其他

URL404-央求的资源(网页等)不存在500-内部服务器错误HTTP状态码分类HTTP状态码由三个十进制数字组成,第一个十进制数字定义了状态码的种类,后两个数字没有分类的作用。HTTP状态码共分为5各种类:HTTP状态码分类分类分类描述1信息,服务器收到央求,需要央求者连续执行操作2成功,操作被成功接收并办理3重定向,需要进一步的操作以完成央求4客户端错误,央求包括语法错误或无法完成央求5服务器错误,服务器在办理央求的过程中发生了错误HTTP状态码列表状态码状态码英文名称中文描述100Continue连续。客户端应连续其央求101Switching切换协议。服务器依照客户端的央求切换协议。只能切换到更Protocols高级的协议,比方,切换到HTTP的新版本协议OKCreatedAcceptedNon-AuthoritativeInformationNoContentResetContentPartialContentMultipleChoicesMovedPermanentlyFoundSeeOtherNotModifiedUseProxyUnusedTemporaryRedirect

央求成功。一般用于GET与POST央求已创办。成功央求并创办了新的资源已接受。已经接受央求,但未办理完成非授权信息。央求成功。但返回的meta信息不在原始的服务器,而是一个副本无内容。服务器成功办理,但未返回内容。在未更新网页的情况下,可保证阅读器连续显示当前文档重置内容。服务器办理成功,用户终端(比方:阅读器)应重置文档视图。可经过此返回码除去阅读器的表单域部分内容。服务器成功办理了部分GET央求多种选择。央求的资源可包括多个地址,相应可返回一个资源特色与地址的列表用于用户终端(比方:阅读器)选择永久搬动。央求的资源已被永久的搬动到新URI,返回信息会包括新的URI,阅读器会自动定向到新URI。今后任何新的央求都应使用新的URI代替临时搬动。与301近似。但资源可是临时被搬动。客户端应连续使用原有URI查察其他地址。与301近似。使用GET和POST央求查察未更正。所央求的资源未更正,服务器返回此状态码时,不会返回任何资源。客户端平时会缓存接见过的资源,经过供应一个头信息指出客户端希望只返回在指定日期此后更正的资源使用代理。所央求的资源必定经过代理接见已经被荒弃的HTTP状态码临时重定向。与302近似。使用GET央求重定向400BadRequest客户端央求的语法错误,服务器无法理解401Unauthorized央求要求用户的身份认证402Payment保留,将来使用Required403Forbidden服务器理解央求客户端的央求,但是拒绝执行此央求404NotFound服务器无法依照客户端的央求找到资源(网页)。经过此代码,网站设计人员可设置"您所央求的资源无法找到"的个性页面405MethodNot客户端央求中的方法被禁止Allowed406Not服务器无法依照客户端央求的内容特色完成央求Acceptable407Proxy央求要求代理的身份认证,与401近似,但央求者应当使用Authentication代理进行授权Required408RequestTime-服务器等待客户端发送的央求时间过长,超时out409Conflict服务器完成客户端的PUT央求是可能返回此代码,服务器处理央求时发生了矛盾410Gone客户端央求的资源已经不存在。410不同样于404,若是资源以前有此刻被永久删除了可使用410代码,网站设计人员可经过301代码指定资源的新地址411Length服务器无法办理客户端发送的不带Content-Length的央求Required信息412Precondition客户端央求信息的先决条件错误Failed413RequestEntity因为央求的实体过大,服务器无法办理,所以拒绝央求。为防TooLarge止客户端的连续央求,服务器可能会关闭连接。若是可是服务器临时无法办理,则会包括一个Retry-After的响应信息414Request-URI央求的URI过长(URI平时为网址),服务器无法办理TooLarge415Unsupported服务器无法办理央求附带的媒体格式MediaType416Requested客户端央求的范围无效rangenotsatisfiable417Expectation服务器无法满足Expect的央求头信息FailedInternalServerErrorNotImplementedBadGatewayServiceUnavailableGatewayTime-outHTTPVersionnotsupported

服务器内部错误,无法完成央求服务器不支持央求的功能,无法完成央求充当网关或代理的服务器,从远端服务器接收到了一个无效的央求因为超载或系统保护,服务器临时的无法办理客户端的央求。延时的长度可包括在服务器的Retry-After头信息中充当网关或代理的服务器,未及时从远端服务器获取央求服务器不支持央求的HTTP协议的版本,无法完成办理HTTPcontent-typeContent-Type,内容种类,一般是指网页中存在的Content-Type,用于定义网络文件的类型和网页的编码,决订阅读器将以什么形式、什么编码读取这个文件,这就是常常看到一些Asp网页点击的结果倒是下载到的一个文件或一张图片的原因。HTTPcontent-type比较表文件扩展名Content-Type(Mime-Type).*(二进制流,不知道下application/octet-stream载文件种类).001application/x-001.323text/h323.907drawing/907.acpaudio/x-mei-aac.aifaudio/aiff.aiffaudio/aiff.asatext/asa.asptext/asp.auaudio/basic.awf.bmpapplication/x-bmp.c4tapplication/x-c4t.calapplication/x-cals.cdfapplication/x-netcdf.celapplication/x-cel.cg4application/x-g4.citapplication/x-cit.cmltext/xml.cmxapplication/x-cmx.crlapplication/pkix-crl.csiapplication/x-csi.cutapplication/x-cut.dbmapplication/x-dbm.dcdtext/xml.derapplication/x-x509-ca-cert

文件扩Content-Type(Mime-Type)展名.tifimage/tiff.301application/x-301.906application/x-906.a11application/x-a11.aiapplication/postscript.aifcaudio/aiff.anvapplication/x-anv.asfvideo/x-ms-asf.asxvideo/x-ms-asf.avivideo/text/xml.botapplication/x-bot.c90application/x-c90.cat.cdrapplication/x-cdr.cerapplication/x-x509-ca-cert.cgmapplication/x-cgm.classjava/*.cmpapplication/x-cmp.cotapplication/x-cot.crtapplication/x-x509-ca-cert.csstext/css.dbfapplication/x-dbf.dbxapplication/x-dbx.dcxapplication/x-dcx.dgnapplication/x-dgn.dibapplication/x-dib.dllapplication/x-msdownload.docapplication/msword.dotapplication/msword.drwapplication/x-drw.dtdtext/xml.dwf.dwfapplication/x-dwf.dwgapplication/x-dwg.dxbapplication/x-dxb.dxfapplication/x-dxf.edn.emfapplication/x-emf.emlmessage/rfc822.enttext/xml.epiapplication/x-epi.epsapplication/x-ps.epsapplication/postscript.etdapplication/x-ebx.exeapplication/x-msdownload.faximage/fax.fdf.fifapplication/fractals.fotext/xml.frmapplication/x-frm.g4application/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.htttext/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.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.ltrapplication/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.midiaudio/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.mpd.mpevideo/x-mpeg.mpegvideo/mpg.mpgvideo/mpg.mpgaaudio/rn-mpeg.mpp.mpsvideo/x-mpeg.mpt.mpvvideo/mpg.mpv2video/mpeg.mpw.mpx.mtxtext/xml.mxpapplication/image/pnetvue.nrfapplication/x-nrf.nwsmessage/rfc822.odctext/x-ms-odc.outapplication/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.pdfapplication/pdf.pdfapplication/pdf.pdx.pfxapplication/x-pkcs12.pglapplication/x-pgl.picapplication/x-pic.pko.plapplication/x-perl.plgtext/html.plsaudio/scpls.pltapplication/x-plt.pngimage/png.pngapplication/x-png.pot.ppa.ppmapplication/x-ppm.pps.ppt.pptapplication/x-ppt.prapplication/x-pr.prfapplication/pics-rules.prnapplication/x-prn.prtapplication/x-prt.psapplication/x-ps.psapplication/postscript.ptnapplication/x-ptn.pwz.r3t.ra.ramaudio/x-pn-realaudio.rasapplication/x-ras.ratapplication/rat-file.rdftext/xml.rec.redapplication/x-red.rgbapplication/x-rgb.rjs.rjtrjt.rlcapplication/x-rlc.rleapplication/x-rle.rm.rmf.rmiaudio/mid.rmjrmj.rmmaudio/x-pn-realaudio.rmprn_music_package.rms.rmvbsecurevbr.rmxapplication/vnd.rn-realsystem-rmx.rnx.rp.rpmaudio/x-pn-realaudio-plugin.rsml.rt.rtfapplication/msword.rtfapplication/x-rtf.rv.samapplication/x-sam.satapplication/x-sat.sdpapplication/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.ssmapplication/streamingmedia.sst.stl.stmtext/html.styapplication/x-sty.svgtext/xml.swfapplication/x-shockwave-flash.tdfapplication/x-tdf.tg4application/x-tg4.tgaapplication/x-tga.tifimage/tiff.tifappl

温馨提示

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

评论

0/150

提交评论