關(guān)于Request和Response對(duì)象

  1. 請(qǐng)求消息:客戶(hù)端發(fā)送給服務(wù)器端的數(shù)據(jù)

    • 數(shù)據(jù)格式:1. 請(qǐng)求行 2. 請(qǐng)求頭 3. 請(qǐng)求空行 4. 請(qǐng)求體
    • User Agent中文名為用戶(hù)代理,簡(jiǎn)稱(chēng) UA,它是一個(gè)特殊字符串頭,使得服務(wù)器能夠識(shí)別客戶(hù)使用的操作系統(tǒng)及版本、CPU 類(lèi)型、瀏覽器及版本、瀏覽器渲染引擎、瀏覽器語(yǔ)言、瀏覽器插件等。
      瀏覽器的 UA 字串
      標(biāo)準(zhǔn)格式為: 瀏覽器標(biāo)識(shí) (操作系統(tǒng)標(biāo)識(shí); 加密等級(jí)標(biāo)識(shí); 瀏覽器語(yǔ)言) 渲染引擎標(biāo)識(shí) 版本信息


      瀏覽器請(qǐng)求.png
  2. 響應(yīng)消息:服務(wù)器端發(fā)送給客戶(hù)端的數(shù)據(jù)

    • 數(shù)據(jù)格式:
      1. 響應(yīng)行
        1. 組成:協(xié)議/版本 響應(yīng)狀態(tài)碼 狀態(tài)碼描述
        2. 響應(yīng)狀態(tài)碼:服務(wù)器告訴客戶(hù)端瀏覽器本次請(qǐng)求和響應(yīng)的一個(gè)狀態(tài)。
          a. 狀態(tài)碼都是3位數(shù)字
          b. 分類(lèi):
          1. 1xx:服務(wù)器就收客戶(hù)端消息,但沒(méi)有接受完成,等待一段時(shí)間后,發(fā)送1xx多狀態(tài)碼
          2. 2xx:成功。代表:200
          3. 3xx:重定向。代表:302(重定向),304(訪(fǎng)問(wèn)緩存)
          4. 4xx:客戶(hù)端錯(cuò)誤。
          * 代表:
          * 404(請(qǐng)求路徑?jīng)]有對(duì)應(yīng)的資源)
          * 405:請(qǐng)求方式?jīng)]有對(duì)應(yīng)的doXxx方法
          5. 5xx:服務(wù)器端錯(cuò)誤。代表:500(服務(wù)器內(nèi)部出現(xiàn)異常)
      2. 響應(yīng)頭:
        1. 格式:頭名稱(chēng): 值
        2. 常見(jiàn)的響應(yīng)頭:
          1. Content-Type:服務(wù)器告訴客戶(hù)端本次響應(yīng)體數(shù)據(jù)格式以及編碼格式
          2. Content-disposition:服務(wù)器告訴客戶(hù)端以什么格式打開(kāi)響應(yīng)體數(shù)據(jù)
            • 參數(shù):
              • in-line:默認(rèn)值,在當(dāng)前頁(yè)面內(nèi)打開(kāi)
              • attachment;filename=xxx:以附件形式打開(kāi)響應(yīng)體。文件下載
      3. 響應(yīng)空行
      4. 響應(yīng)體:傳輸?shù)臄?shù)據(jù)

3.響應(yīng)字符串格式

        HTTP/1.1 200 OK
        Content-Type: text/html;charset=UTF-8
        Content-Length: 101
        Date: Wed, 06 Jun 2018 07:08:42 GMT

        <html>
          <head>
            <title>$Title$</title>
          </head>
          <body>
          hello , response
          </body>
        </html>

4.Response.setContentType 可設(shè)置屬性

* = application/octet-stream 
.001 = application/x-001 
.301 = application/x-301 
.323 = text/h323 
.906 = application/x-906 
.907 = drawing/907 
.a11 = application/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 
.c90 = application/x-c90 
.cal = application/x-cals 
.cat = application/vnd.ms-pki.seccat 
.cdf = application/x-netcdf 
.cdr = application/x-cdr 
.cel = application/x-cel 
.cer = application/x-x509-ca-cert 
.cg4 = application/x-g4 
.cgm = application/x-cgm 
.cit = application/x-cit 
.class = java/* 
.cml = text/xml :客戶(hù)端瀏覽器按XML格式進(jìn)行解析文檔 
.cmp = application/x-cmp 
.cmx = application/x-cmx 
.cot = application/x-cot 
.crl = application/pkix-crl 
.crt = application/x-x509-ca-cert 
.csi = application/x-csi 
.css = text/css :客戶(hù)端瀏覽器按CSS格式進(jìn)行解析文檔 
.cut = application/x-cut 
.dbf = application/x-dbf 
.dbm = application/x-dbm 
.dbx = application/x-dbx 
.dcd = text/xml :客戶(hù)端瀏覽器按XML格式進(jìn)行解析文檔 
.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 :客戶(hù)端瀏覽器按XML格式進(jìn)行解析文檔 
.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 = application/x-emf 
.eml = message/rfc822 
.ent = text/xml :客戶(hù)端瀏覽器按XML格式進(jìn)行解析文檔 
.epi = application/x-epi 
.eps = application/x-ps 
.eps = application/postscript 
.etd = application/x-ebx 
.exe = application/x-msdownload 
.fax = image/fax 
.fdf = application/vnd.fdf 
.fif = application/fractals 
.fo = text/xml :客戶(hù)端瀏覽器按XML格式進(jìn)行解析文檔 
.frm = application/x-frm 
.g4 = application/x-g4 
.gbr = application/x-gbr 
.gcd = application/x-gcd 
.gif = image/gif 
.gl2 = application/x-gl2 
.gp4 = application/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 :客戶(hù)端瀏覽器按超文本格式進(jìn)行解析文檔 
.html = text/html :客戶(hù)端瀏覽器按超文本格式進(jìn)行解析文檔 
.htt = text/webviewhtml 
.htx = text/html :客戶(hù)端瀏覽器按超文本格式進(jìn)行解析文檔 
.icb = application/x-icb 
.ico = image/x-icon 
.ico = application/x-ico 
.iff = application/x-iff 
.ig4 = application/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 :客戶(hù)端瀏覽器按超文本格式進(jìn)行解析文檔 
.la1 = audio/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 = application/x-mil 
.mml = text/xml 
.mnd = audio/x-musicnet-download 
.mns = audio/x-musicnet-stream 
.mocha = application/x-javascript 
.movie = video/x-sgi-movie 
.mp1 = audio/mp1 
.mp2 = audio/mp2 
.mp2v = video/mpeg 
.mp3 = audio/mp3 
.mp4 = video/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 
.mpv2 = video/mpeg 
.mpw = application/vnd.ms-project 
.mpx = application/vnd.ms-project 
.mtx = text/xml 
.mxp = application/x-mmxp 
.net = image/pnetvue 
.nrf = application/x-nrf 
.nws = message/rfc822 
.odc = text/x-ms-odc 
.out = application/x-out 
.p10 = application/pkcs10 
.p12 = application/x-pkcs12 
.p7b = application/x-pkcs7-certificates 
.p7c = application/pkcs7-mime 
.p7m = application/pkcs7-mime 
.p7r = application/x-pkcs7-certreqresp 
.p7s = application/pkcs7-signature 
.pc5 = application/x-pc5 
.pci = application/x-pci 
.pcl = application/x-pcl 
.pcx = application/x-pcx 
.pdf = application/pdf :客戶(hù)端瀏覽器按PDF格式進(jìn)行解析文檔 
.pdf = application/pdf 
.pdx = application/vnd.adobe.pdx 
.pfx = application/x-pkcs12 
.pgl = application/x-pgl 
.pic = application/x-pic 
.pko = application/vnd.ms-pki.pko 
.pl = application/x-perl 
.plg = text/html 
.pls = audio/scpls 
.plt = application/x-plt 
.png = image/png 
.png = application/x-png 
.pot = application/vnd.ms-powerpoint 
.ppa = application/vnd.ms-powerpoint 
.ppm = application/x-ppm 
.pps = application/vnd.ms-powerpoint 
.ppt = application/vnd.ms-powerpoint 
.ppt = application/x-ppt 
.pr = application/x-pr 
.prf = application/pics-rules 
.prn = application/x-prn 
.prt = application/x-prt 
.ps = application/x-ps 
.ps = application/postscript 
.ptn = application/x-ptn 
.pwz = application/vnd.ms-powerpoint 
.r3t = text/vnd.rn-realtext3d 
.ra = audio/vnd.rn-realaudio 
.ram = audio/x-pn-realaudio 
.ras = application/x-ras 
.rat = application/rat-file 
.rdf = text/xml 
.rec = application/vnd.rn-recording 
.red = application/x-red 
.rgb = application/x-rgb 
.rjs = application/vnd.rn-realsystem-rjs 
.rjt = application/vnd.rn-realsystem-rjt 
.rlc = application/x-rlc 
.rle = application/x-rle 
.rm = application/vnd.rn-realmedia 
.rmf = application/vnd.adobe.rmf 
.rmi = audio/mid 
.rmj = application/vnd.rn-realsystem-rmj 
.rmm = audio/x-pn-realaudio 
.rmp = application/vnd.rn-rn_music_package 
.rms = application/vnd.rn-realmedia-secure 
.rmvb = application/vnd.rn-realmedia-vbr 
.rmx = application/vnd.rn-realsystem-rmx 
.rnx = application/vnd.rn-realplayer 
.rp = image/vnd.rn-realpix 
.rpm = audio/x-pn-realaudio-plugin 
.rsml = application/vnd.rn-rsml 
.rt = text/vnd.rn-realtext 
.rtf = application/msword 
.rtf = application/x-rtf 
.rv = video/vnd.rn-realvideo 
.sam = application/x-sam 
.sat = application/x-sat 
.sdp = application/sdp 
.sdw = application/x-sdw 
.sit = application/x-stuffit 
.slb = application/x-slb 
.sld = application/x-sld 
.slk = drawing/x-slk 
.smi = application/smil 
.smil = application/smil 
.smk = application/x-smk 
.snd = audio/basic 
.sol = text/plain 
.sor = text/plain 
.spc = application/x-pkcs7-certificates 
.spl = application/futuresplash 
.spp = text/xml 
.ssm = application/streamingmedia 
.sst = application/vnd.ms-pki.certstore 
.stl = application/vnd.ms-pki.stl 
.stm = text/html 
.sty = application/x-sty 
.svg = text/xml 
.swf = application/x-shockwave-flash :客戶(hù)端瀏覽器按 Flash 格式進(jìn)行解析文檔 
.tdf = application/x-tdf 
.tg4 = application/x-tg4 
.tga = application/x-tga 
.tif = image/tiff 
.tif = application/x-tif 
.tiff = image/tiff 
.tld = text/xml 
.top = drawing/x-top 
.torrent = application/x-bittorrent 
.tsd = text/xml 
.txt = text/plain :客戶(hù)端瀏覽器按 純文本 格式進(jìn)行解析文檔 
.uin = application/x-icq 
.uls = text/iuls 
.vcf = text/x-vcard 
.vda = application/x-vda 
.vdx = application/vnd.visio 
.vml = text/xml 
.vpg = application/x-vpeg005 
.vsd = application/vnd.visio 
.vsd = application/x-vsd 
.vss = application/vnd.visio 
.vst = application/vnd.visio 
.vst = application/x-vst 
.vsw = application/vnd.visio 
.vsx = application/vnd.visio 
.vtx = application/vnd.visio 
.vxml = text/xml 
.wav = audio/wav 
.wax = audio/x-ms-wax 
.wb1 = application/x-wb1 
.wb2 = application/x-wb2 
.wb3 = application/x-wb3 
.wbmp = image/vnd.wap.wbmp 
.wiz = application/msword 
.wk3 = application/x-wk3 
.wk4 = application/x-wk4 
.wkq = application/x-wkq 
.wks = application/x-wks 
.wm = video/x-ms-wm 
.wma = audio/x-ms-wma 
.wmd = application/x-ms-wmd 
.wmf = application/x-wmf 
.wml = text/vnd.wap.wml 
.wmv = video/x-ms-wmv 
.wmx = video/x-ms-wmx 
.wmz = application/x-ms-wmz 
.wp6 = application/x-wp6 
.wpd = application/x-wpd 
.wpg = application/x-wpg 
.wpl = application/vnd.ms-wpl 
.wq1 = application/x-wq1 
.wr1 = application/x-wr1 
.wri = application/x-wri 
.wrk = application/x-wrk 
.ws = application/x-ws 
.ws2 = application/x-ws 
.wsc = text/scriptlet 
.wsdl = text/xml 
.wvx = video/x-ms-wvx 
.xdp = application/vnd.adobe.xdp 
.xdr = text/xml 
.xfd = application/vnd.adobe.xfd 
.xfdf = application/vnd.adobe.xfdf 
.xhtml = text/html 
.xls = application/vnd.ms-excel 
.xls = application/x-xls 
.xlw = application/x-xlw 
.xml = text/xml 
.xpl = audio/scpls 
.xq = text/xml 
.xql = text/xml 
.xquery = text/xml 
.xsd = text/xml 
.xsl = text/xml 
.xslt = text/xml 
.xwd = application/x-xwd 
.x_b = application/x-x_b 
.x_t = application/x-x_t

5.示例代碼

/**
    * 設(shè)置響應(yīng)頭 By Andrew
     * 2022.05.14
     * @param request
     * @param response
     * @param fileName
     * @throws UnsupportedEncodingException
     */
    public static void setResponseName(final HttpServletRequest request, final HttpServletResponse response, String fileName) throws UnsupportedEncodingException {
        if (request == null || response == null || StringUtils.isBlank(fileName)) {
            throw new IllegalArgumentException();
        }
        response.reset();
        /**服務(wù)器告訴客戶(hù)端本次響應(yīng)體數(shù)據(jù)格式以及編碼格式,是在獲取流之前設(shè)置**/
        response.setContentType("application/msword;charset=utf-8");
        
        /**User Agent中文名為用戶(hù)代理,簡(jiǎn)稱(chēng) UA,它是一個(gè)特殊字符串頭,使得服務(wù)器能夠識(shí)別客戶(hù)使用的操作系統(tǒng)及版本、CPU 類(lèi)型、瀏覽器及版本、瀏覽器渲染引擎、瀏覽器語(yǔ)言、瀏覽器插件等。**/
        /**瀏覽器的 UA 字串標(biāo)準(zhǔn)格式為: 瀏覽器標(biāo)識(shí) (操作系統(tǒng)標(biāo)識(shí); 加密等級(jí)標(biāo)識(shí); 瀏覽器語(yǔ)言) 渲染引擎標(biāo)識(shí) 版本信息**/
        if (request.getHeader("User-Agent").indexOf("MSIE") != -1) {
            fileName = new String(new File(fileName).getName().getBytes("UTF-8"), "ISO8859-1");
        }
        else {
            fileName = URLEncoder.encode(fileName, "UTF8");
        }
        
        /**服務(wù)器告訴客戶(hù)端以什么格式打開(kāi)響應(yīng)體數(shù)據(jù)值:in-line:默認(rèn)值,在當(dāng)前頁(yè)面內(nèi)打開(kāi);attachment;filename=xxx:以附件形式打開(kāi)響應(yīng)體。文件下載**/
        response.addHeader("Content-Disposition", "attachment; filename=\"" + fileName + "\"");
    }
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀(guān)點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容