HTTP协议(⼀看就会)⼀、什么是HTTP?
答:HTTP(Hyper Text Transfer Protocol)(超⽂本传输协议)
⼆、什么是超⽂本?
答:就是超越了普通⽂本的⽂本,它是⽂字、图⽚、视频等的混合体。
例:HTML
三、什么是传输?
答:传输是⼀种传输电学消息(连带经过媒介的辐射能现象)的⾏为。
消息可以是⼀串或者⼀组,⽐如,通常也称为或者。
四、什么是协议?
答:协议是通信计算机双⽅必须共同遵从的⼀组约定。
例如怎么样建⽴连接、怎么样互相识别等。
只有遵守这个约定,计算机之间才能相互通信交流。
五、什么是统⼀资源定位符(URL)?
六、HTTP 消息结构
1、请求报⽂结构
(1)、语法
请求⽅法|空格|URL|空格|协议版本|回车符|换⾏符
头部字段名|:|值|回车符|换⾏符
...
回车符|换⾏符
请求数据
(2)、例⼦:发送post请求到index.php
name=”zisay”&qq=”15593838”
2、响应报⽂结构
(1)、语法
协议版本|空格|状态码|空格|原因短语|回车符|换⾏符
头部字段名|:|值|回车符|换⾏符
...
回车符|换⾏符
响应正⽂
(2)、例⼦:响应index.php
HTTP/1.1 200 OK
Date: Sun, 23 Jan 2022 03:27:46 GMT
Server: Apache/2.4.39 (Win64) OpenSSL/1.1.1b mod_fcgid/2.3.9a mod_log_rotate/1.02 X-Powered-By: PHP/7.4.3
Keep-Alive: timeout=5, max=99
Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: text/html; charset=UTF-8
七、HTTP 请求⽅法说明
1、HTTP/1.0
⽅法说明
1GET请求指定的页⾯信息,并返回实体主体。
2POST向指定资源提交数据进⾏处理请求(例如提交表单或者上传⽂件)。数据被包含在请求体中。POST 请求可能会导致新的资源的建⽴和/或已有资源的修改。
3HEAD类似于 GET 请求,只不过返回的响应中没有具体的内容,⽤于获取报头。
2、HTTP/1.1
序号⽅法说明
1PUT从客户端向服务器传送的数据取代指定的⽂档的内容。
2DELETE请求服务器删除指定的页⾯。
3OPTIONS允许客户端查看服务器的性能。
4TRACE回显服务器收到的请求,主要⽤于测试或诊断。
5CONNECT HTTP/1.1 协议中预留给能够将连接改为管道⽅式的代理服务器。
6PATCH是对 PUT ⽅法的补充,⽤来对已知资源进⾏局部更新。
⼋、HTTP 响应状态码说明
状态码英⽂名称说明
100Continue继续。客户端应继续其请求
101Switching
Protocols切换协议。服务器根据客户端的请求切换协议。只能切换到更⾼级的协议,例如,切换到HTTP的新版本协议
200OK请求成功。⼀般⽤于GET与POST请求201Created已创建。成功请求并创建了新的资源202Accepted已接受。已经接受请求,但未处理完成
203Non-Authoritative
Information⾮授权信息。请求成功。但返回的meta信息不在原始的服务器,⽽是⼀个副本
204No Content⽆内容。服务器成功处理,但未返回内容。在未更新⽹页的情况下,可确保浏览器继续显⽰当前⽂档
205Reset Content重置内容。服务器处理成功,⽤户终端(例如:浏览器)应重置⽂档视图。可通过此返回码清除浏览器的表单域206Partial Content部分内容。服务器成功处理了部分GET请求
300Multiple Choices多种选择。请求的资源可包括多个位置,相应可返回⼀个资源特征与地址的列表⽤于⽤户终端(例如:浏览器)选择
301Moved
Permanently
永久移动。请求的资源已被永久的移动到新URI,返回信息会包括新的URI,浏览器会⾃动定向到新URI。今后任
html实现用户注册登录代码何新的请求都应使⽤新的URI代替
302Found临时移动。与301类似。但资源只是临时被移动。客户端应继续使⽤原有URI
303See Other查看其它地址。与301类似。使⽤GET和POST请求查看
304Not Modified未修改。所请求的资源未修改,服务器返回此状态码时,不会返回任何资源。客户端通常会缓存访问过的资源,通过提供⼀个头信息指出客户端希望只返回在指定⽇期之后修改的资源
305Use Proxy使⽤代理。所请求的资源必须通过代理访问
306Unused已经被废弃的HTTP状态码
307Temporary
Redirect临时重定向。与302类似。使⽤GET请求重定向
400Bad Request客户端请求的语法错误,服务器⽆法理解
401Unauthorized请求要求⽤户的⾝份认证
402Payment Required保留,将来使⽤
403Forbidden服务器理解请求客户端的请求,但是拒绝执⾏此请求
404Not Found服务器⽆法根据客户端的请求到资源(⽹页)。通过此代码,⽹站设计⼈员可设置"您所请求的资源⽆法到"的个性页⾯
405Method Not
Allowed客户端请求中的⽅法被禁⽌
406Not Acceptable服务器⽆法根据客户端请求的内容特性完成请求
407Proxy
Authentication
Required
请求要求代理的⾝份认证,与401类似,但请求者应当使⽤代理进⾏授权
408Request Time-out服务器等待客户端发送的请求时间过长,超时
409Conflict服务器完成客户端的 PUT 请求时可能返回此代码,服务器处理请求时发⽣了冲突
410Gone客户端请求的资源已经不存在。410不同于404,如果资源以前有现在被永久删除了可使⽤410代码,⽹站设计⼈员可通过301代码指定资源的新位置
411Length Required服务器⽆法处理客户端发送的不带Content-Length的请求信息
412Precondition Failed客户端请求信息的先决条件错误
413Request Entity Too
Large
由于请求的实体过⼤,服务器⽆法处理,因此拒绝请求。为防⽌客户端的连续请求,服务器可能会关闭连接。如
果只是服务器暂时⽆法处理,则会包含⼀个Retry-After的响应信息
414Request-URI Too
Large请求的URI过长(URI通常为⽹址),服务器⽆法处理
415Unsupported
Media Type服务器⽆法处理请求附带的媒体格式
416Requested range
not satisfiable客户端请求的范围⽆效
417Expectation Failed服务器⽆法满⾜Expect的请求头信息
500Internal Server
Error服务器内部错误,⽆法完成请求
501Not Implemented服务器不⽀持请求的功能,⽆法完成请求
502Bad Gateway作为⽹关或者代理⼯作的服务器尝试执⾏请求时,从远程服务器接收到了⼀个⽆效的响应
503Service
Unavailable由于超载或系统维护,服务器暂时的⽆法处理客户端的请求。延时的长度可包含在服务器的Retry-After头信息中
504Gateway Time-out充当⽹关或代理的服务器,未及时从远端服务器获取请求
505HTTP Version not
supported服务器不⽀持请求的HTTP协议的版本,⽆法完成处理
状态码英⽂名称说明
九、HTTP 响应头信息说明
应答头说明
Allow服务器⽀持哪些请求⽅法(如GET、POST等)。
Content-Encoding ⽂档的编码(Encode)⽅法。只有在解码之后才可以得到Content-Type头指定的内容类型。利⽤gzip压缩⽂档能够显著地减少HTML⽂档的下载时间。Java的GZIPOutputStream可以很⽅便地进⾏gzip压缩,但只有Unix上的Netscape和Windows上的IE 4、IE 5才⽀持它。因此,Servlet应该通过查看Accept-Encoding头(即Header("Accept-Encoding"))检查浏览器是否⽀持gzip,为⽀持gzip的浏览器返回经gzip压缩的HTML页⾯,为其他浏览器返回普通页⾯。
Content-Length 表⽰内容长度。只有当浏览器使⽤持久HTTP连接时才需要这个数据。如果你想要利⽤持久连接的优势,可以把输出⽂档写⼊ByteArrayOutputStream,完成后查看其⼤⼩,然后把该值放⼊Content-Length头,最后通过
byteArrayStream.OutputStream()发送内容。
Content-Type 表⽰后⾯的⽂档属于什么MIME类型。Servlet默认为text/plain,但通常需要显式地指定为text/html。由于经常要设置Content-Type,因此HttpServletResponse提供了⼀个专⽤的⽅法setContentType。
Date当前的GMT时间。你可以⽤setDateHeader来设置这个头以避免转换时间格式的⿇烦。Expires应该在什么时候认为⽂档已经过期,从⽽不再缓存它?
Last-Modified ⽂档的最后改动时间。客户可以通过If-Modified-Since请求头提供⼀个⽇期,该请求将被视为⼀个条件GET,只有改动时间迟于指定时间的⽂档才会返回,否则返回⼀个304(Not Modified)状态。Last-Modified也可⽤setDateHeader⽅法来设置。
Location表⽰客户应当到哪⾥去提取⽂档。Location通常不是直接设置的,⽽是通过HttpServletResponse的sendRedirect⽅法,该⽅法同时设置状态代码为302。
Refresh 表⽰浏览器应该在多少时间之后刷新⽂档,以秒计。除了刷新当前⽂档之外,你还可以通过setHeader("Refresh", "5;
URL=host/path")让浏览器读取指定的页⾯。注意这种功能通常是通过设置HTML页⾯HEAD区的<META HTTP-EQUIV="Refresh" CONTENT="5;URL=host/path">实现,这是因为,⾃动刷新或重定向对于那些不能使⽤CGI或Servlet的HTML编写者⼗分重要。但是,对于Servlet来说,直接设置Refresh头更加⽅便。注意Refresh的意义是"N秒之后刷新本页⾯或访问指定页⾯",⽽不是"每隔N秒刷新本页⾯或访问指定页⾯"。因此,连续刷新要求每次都发送⼀个Refresh头,⽽发送204状态代码则可以阻⽌浏览器继续刷新,不管是使⽤Refresh头还是<META HTTP-EQUIV="Refresh" ...>。注意Refresh头不属于HTTP 1.1正式规范的⼀部分,⽽是⼀个扩展,但Netscape和IE都⽀持它。
Server服务器名字。Servlet⼀般不设置这个值,⽽是由Web服务器⾃⼰设置。
Set-Cookie设置和页⾯关联的Cookie。Servlet不应使⽤response.setHeader("Set-Cookie", ...),⽽是应使⽤HttpServletResponse提供的专⽤⽅法addCookie。参见下⽂有关Cookie设置的讨论。
WWW-Authenticate 客户应该在Authorization头中提供什么类型的授权信息?在包含401(Unauthorized)状态⾏的应答中这个头是必需的。例如,response.setHeader("WWW-Authenticate", "BASIC realm=\"executives\"")。注意Servlet⼀般不进⾏这⽅⾯的处理,⽽是让Web服务器的专门机
制来控制受密码保护页⾯的访问(例如.htaccess)。
⼗、HTTP 内容类型说明(content-type)1、常见的媒体格式类型如下:
text/html : HTML格式
text/plain :纯⽂本格式
text/xml : XML格式
image/gif :gif图⽚格式
image/jpeg :jpg图⽚格式
image/png:png图⽚格式
2、以application开头的媒体格式类型:
application/xhtml+xml :XHTML格式
application/xml: XML数据格式
application/atom+xml :Atom XML聚合格式
application/json: JSON数据格式
application/pdf:pdf格式
application/msword : Word⽂档格式
application/octet-stream :⼆进制流数据(如常见的⽂件下载)
application/x-www-form-urlencoded :
中默认的encType,form表单数据被编码为key/value格式发送到服务器(表单默认的提交数据的格式)
3、另外⼀种常见的媒体格式是上传⽂件之时使⽤的:
multipart/form-data :需要在表单中进⾏⽂件上传时,就需要使⽤该格式
4、content-type 对照表
⽂件扩展名Content-Type(Mime-Type)⽂件扩展名Content-Type(Mime-Type) .*(⼆进制流,不知道下载⽂件类型)application/octet-stream.tif image/tiff
.001application/x-001.301application/x-301
.323text/h323.906application/x-906
.907drawing/907.a11application/x-a11
.acp audio/x-mei-aac.ai application/postscript
.aif audio/aiff.aifc audio/aiff
.aiff audio/aiff.anv application/x-anv
.asa text/asa.asf video/x-ms-asf
.asp text/asp.asx video/x-ms-asf
.au audio/basic.avi video/avi
.awf application/vnd.adobe.workflow.biz text/xml
.bmp application/x-bmp.bot application/x-bot
.
c4t application/x-c4t.c90application/x-c90
.cal application/x-cals.cat application/vnd.ms-pki.seccat .cdf application/x-netcdf.cdr application/x-cdr
.cel application/x-x509-ca-cert
. application/x-cgm
.cit application/x-cit.class java/*
.cml p application/x-cmp
.cmx application/x-cot
.crl application/x-x509-ca-cert
.csi application/x-csi.css text/css
.cut application/x-cut.dbf application/x-dbf
.dbm application/x-dbm.dbx application/x-dbx
.
dcd text/xml.dcx application/x-dcx
.der application/x-x509-ca-cert.dgn application/x-dgn
.dib application/x-dib.dll application/x-msdownload
.doc application/msword.dot application/msword
.drw application/x-drw.dtd text/xml
.dwf Model/vnd.dwf.dwf application/x-dwf
.dwg application/x-dwg.dxb application/x-dxb
.dxf application/x-dxf.edn application/vnd.adobe.edn .emf l message/rfc822
.ent text/xml.epi application/x-epi
.eps application/x-ps.eps application/postscript
.etd application/x-msdownload
.
fax image/fax.fdf application/vnd.fdf
⽂件扩展名Content-Type(Mime-Type)⽂件扩展名Content-Type(Mime-Type) .fif application/fractals.fo text/xml
.frm application/x-frm.g4application/x-g4
.gbr application/x-gbr.application/x-
.gif image/gif.gl2application/x-gl2
.gp4application/x-gp4.hgl application/x-hgl
.hmr application/x-hmr.hpg application/x-hpgl
.hpl application/x-hpl.hqx application/mac-binhex40
.hrf application/x-hrf.hta application/hta
.htc text/x-component.htm text/html
.html text/html.htt text/webviewhtml
.htx text/html.icb application/x-icb
.ico image/x-icon.ico application/x-ico
.iff application/x-iff.ig4application/x-g4
.igs application/x-igs.iii application/x-iphone
.img application/x-img.ins application/x-internet-signup .isp application/x-internet-signup.IVF video/x-ivf
.java java/*.jfif image/jpeg
.jpe image/jpeg.jpe application/x-jpe
.jpeg image/jpeg.jpg image/jpeg
.jpg application/x-jpg.js application/x-javascript
.jsp text/html.la1audio/x-liquid-file
.lar application/x-laplayer-reg.latex application/x-latex
.
lavs audio/x-liquid-secure.lbm application/x-lbm
.lmsff audio/x-la-lms.ls application/x-javascript
.ltr application/x-ltr.m1v video/x-mpeg
.m2v video/x-mpeg.m3u audio/mpegurl
.m4e video/mpeg4.mac application/x-mac
.man application/x-troff-man.math text/xml
.mdb application/msaccess.mdb application/x-mdb
.mfp application/x-shockwave-flash.mht message/rfc822
.mhtml message/rfc822.mi application/x-mi
.mid audio/mid.midi audio/mid
.mil l text/xml
.
mnd s audio/x-musicnet-stream
.mocha vie video/x-sgi-movie
.mp1audio/mp1.mp2audio/mp2
.mp2v video/mpeg.mp3audio/mp3
.mp4video/mpeg4.mpa video/x-mpg
.mpd application/vnd.ms-project.mpe video/x-mpeg
.mpeg video/mpg.mpg video/mpg
.mpga audio/rn-mpeg.mpp application/vnd.ms-project
.mps video/x-mpeg.mpt application/vnd.ms-project
.mpv video/mpg.mpv2video/mpeg
.mpw application/vnd.ms-project.mpx application/vnd.ms-project
.
mtx p application/x-mmxp
f application/x-nrf
.nws message/rfc822.odc text/x-ms-odc
.out application/x-out.p10application/pkcs10
.p12application/x-pkcs12.p7b application/x-pkcs7-certificates .p7c application/pkcs7-mime.p7m application/pkcs7-mime
.p7r application/x-pkcs7-certreqresp.p7s application/pkcs7-signature
.pc5application/x-pc5.pci application/x-pci
.pcl application/x-pcl.pcx application/x-pcx
.pdf application/pdf.pdf application/pdf
.pdx application/vnd.adobe.pdx.pfx application/x-pkcs12
.pgl application/x-pgl.pic application/x-pic

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。