整合營銷服務(wù)商

          電腦端+手機(jī)端+微信端=數(shù)據(jù)同步管理

          免費(fèi)咨詢熱線:

          HTTP狀態(tài)碼、響應(yīng)頭、請(qǐng)求頭

          HTTP狀態(tài)碼、響應(yīng)頭、請(qǐng)求頭

          、狀態(tài)碼中文

          100:“繼續(xù)”,
          
          101:“交換協(xié)議”,
          
          200:“好的”,
          
          201:“已創(chuàng)建”,
          
          202:“接受”,
          
          203:“非權(quán)威信息”,
          
          204:“無內(nèi)容”,
          
          205:“重置內(nèi)容”,
          
          206:“部分內(nèi)容”,
          
          300:“多選”,
          
          301:“永久移動(dòng)”,
          
          302:“找到”,
          
          303:“見其他”,
          
          304:“未修改”,
          
          305:“使用代理”,
          
          307:“臨時(shí)重定向”,
          
          400:“錯(cuò)誤請(qǐng)求”,
          
          401:“未授權(quán)”,
          
          402:“需要支付”,
          
          403:“禁止”,
          
          404:“未找到”,
          
          405:“方法不允許”,
          
          406:“不可接受”,
          
          407:“需要代理驗(yàn)證”,
          
          408:“請(qǐng)求超時(shí)”,
          
          409:“沖突”,
          
          410:“消失”,
          
          411:“長(zhǎng)度要求”,
          
          412:“前置失敗”,
          
          413:“請(qǐng)求實(shí)體太大”,
          
          414:“請(qǐng)求URI太長(zhǎng)”,
          
          415:“不支持的媒體類型”,
          
          416:“請(qǐng)求的范圍不可滿足”,
          
          417:“期望失敗”,
          
          422:“不可處理實(shí)體”,
          
          500:“內(nèi)部服務(wù)器錯(cuò)誤”,
          
          501:“未實(shí)現(xiàn)”,
          
          502:“壞網(wǎng)關(guān)”,
          
          503:“服務(wù)不可用”,
          
          504:“網(wǎng)關(guān)超時(shí)”,
          
          505:“不支持HTTP版本”
          


          二、狀態(tài)碼英文

          108:"Continue"
          191:"Switching Protocols"208OK
          201:"Created"202:"Accepted"
          203:"Non-Authoritative Information"
          284:"No Content"
          205"Reset Content"
          206"Partial Content"398:"Multiple Choice"
          301:"Moved Permanently"
          392"Found"
          303:"See Other"
          384:"Not Modified",
          305:"Use Proxy"
          307:"Temporary Redirect"
          408:"Bad Request"401:"Unauthorized"
          402:"Payment Required"
          403:"Forbidden"
          484:"Not Found"
          405:"Method Not Allowed"
          486:"Not Acceptable"
          497:"Proxy Authentication Required",
          408:"Request Timeout"
          409:"Conflict"
          410:"Gone"
          411:"Length Required".
          412:"precondition Failed"
          413:"Request Entity Too Large",
          414:Request-URI Too Long",
          415"Unsupported edia Type".
          416"Requested Range Not Satisfiable"
          417Expectation Failed"
          422:Unprocessable Entity"500"Internal Server Error"
          501:"Not Implemented"
          502"Bad Gateway"
          503:Service Unavailable".
          504:Gateway Timeout"
          505:"HTTP Version Not Supported"

          三、HTTP Responses Header 響應(yīng)頭

          Accept-Ranges  表明服務(wù)器是否支持指定范圍請(qǐng)求及哪種類型的分段請(qǐng)求     Accept-Ranges:bytes
          Age     從原始服務(wù)器到代理緩存形成的估算時(shí)間(以秒計(jì),非負(fù))Age:12
          Allow  對(duì)某網(wǎng)絡(luò)資源的有效的請(qǐng)求行為,不允許則返回405  Allow:GET, HEAD
          Cache-Control 告訴所有的緩存機(jī)制是否可以緩存及哪種類型   Cache-Control:no-cache
          Content-Encodingweb服務(wù)器支持的返回內(nèi)容壓縮編碼類型。 Content-Encoding:
          
          Content-Language 響應(yīng)體的語言Content-Language:en,zh
          Content-Length 響應(yīng)體的長(zhǎng)度Content-Length: 348
          Content-Location  請(qǐng)求資源可替代的備用的另一地址 Content-Location:/index.html
          Content-MD5    返回資源的MD5校驗(yàn)值  Content-MD5:Q2hlY2sgSW50ZWdyaXR5IQ==Content-Range   在整個(gè)返回體中本部分的字節(jié)位置Content-Range:bytes 21010-47021/47022
          Content-Type 返回內(nèi)容的MIME類型 Content-Type:text/html; charset=utf-8
          Date 原始服務(wù)器消息發(fā)出的時(shí)間  Date:Tue, 15 Nov 2010 08:12:31 GMT
          ETag  請(qǐng)求變量的實(shí)體標(biāo)簽的當(dāng)前值   ETag:“737060cd8c284d8af7ad3082f209582d”
          Expires    響應(yīng)過期的日期和時(shí)間    Expires: Thu, 01 Dec2010 16:00:00 GMT
          Last-Modified     請(qǐng)求資源的最后修改時(shí)間    Last-Modified: Tue, 15 Nov 2010 12:45:26 GMT
          Location  用來重定向接收方到非請(qǐng)求URL的位置來完成請(qǐng)求或標(biāo)識(shí)新的資源    Location:http://www.zcmhi.com/archives/94.html
          Pragma     包括實(shí)現(xiàn)特定的指令,它可應(yīng)用到響應(yīng)鏈上的任何接收方    Pragma:no-cache
          Proxy-Authenticate   它指出認(rèn)證方案和可應(yīng)用到代理的該URL上的參數(shù)        Proxy-Authenticate:Basic
          refresh     應(yīng)用于重定向或一個(gè)新的資源被創(chuàng)造,在5秒之后重定向(由網(wǎng)景提出,被大部分瀏覽器支持)Refresh: 5;url=http://www.zcmhi.com/archives/94.html
          Retry-After   如果實(shí)體暫時(shí)不可取,通知客戶端在指定時(shí)間之后再次嘗試   Retry-After:120
          Server  web服務(wù)器軟件名稱 Server: Apache/1.3.27(Unix) (Red-Hat/Linux)
          Set-Cookie    設(shè)置HttpbCookie   Set-Cookie:UserID=JohnDoe; Max-Age=3600; Version=1
          Trailer  指出頭域在分塊傳輸編碼的尾部存在  Trailer:Max-Forwards
          Transfer-Encoding   文件傳輸編碼  Transfer-Encoding:chunked
          Vary  告訴下游代理是使用緩存響應(yīng)還是從原始服務(wù)器請(qǐng)求   Vary:*
          Via     告知代理客戶端響應(yīng)是通過哪里發(fā)送的  Via:1.0 fred, 1.1 nowhere.com (Apache/1.1)
          Warning  警告實(shí)體可能存在的問題  Warning: 199 Miscellaneous warning
          WWW-Authenticate  表明客戶端請(qǐng)求實(shí)體應(yīng)該使用的授權(quán)方案   WWW-Authenticate:Basic
          Access-Control-Allow-Origin 跨域 *

          四、HTTP Request Header 請(qǐng)求頭

          響應(yīng)頭是在服務(wù)器發(fā)送頁面的HTML代碼之前,從服務(wù)器發(fā)送到瀏覽器。這些頭信息包含著關(guān)于下列內(nèi)容的有用信息:服務(wù)器希望的通信方式,頁面類型,以及諸如截止日期和內(nèi)容類型這樣的元數(shù)據(jù)。響應(yīng)是獲取Web應(yīng)用的先關(guān)信息的絕佳來源,對(duì)于我們想通過它實(shí)現(xiàn)的特殊功能來說,尤其如此。

          響應(yīng)頭是攻擊者用于查找應(yīng)用特有信息的地方。與你的Web服務(wù)器和平臺(tái)相關(guān)的信息將會(huì)作為標(biāo)準(zhǔn)請(qǐng)求的一部分被泄露出去。

          解決方案

          正如3.3節(jié)中所提到的,你可以在請(qǐng)求頭旁邊找到響應(yīng)頭,也可以通過代理來找到頭信息,比如WebScarb。我們將利用這項(xiàng)任務(wù)來向你介紹TamperData,它是一個(gè)方便的工具,可以用在這項(xiàng)任務(wù)和其他幾項(xiàng)任務(wù)中。

          按照2.2節(jié),安裝TamperData。它的安裝方法與大多數(shù)附加組件相同。

          從“工具”菜單中打開TamperData,然后瀏覽到某個(gè)頁面。在TamperData窗口中,你會(huì)發(fā)現(xiàn)它列舉出了訪問過的頁面,這與WebScarab和FireBug是一樣的。單擊某個(gè)頁面,就會(huì)顯示出請(qǐng)求頭和響應(yīng)頭,如圖3-12所示。

          討論

          響應(yīng)頭和響應(yīng)本身之間存在著差別。響應(yīng)頭描述響應(yīng),它們是元數(shù)據(jù)。例如,響應(yīng)頭通常會(huì)包含以下內(nèi)容:

          狀態(tài)(Status)

          內(nèi)容類型(Content-Type)

          內(nèi)容編碼(Content-Encoding)

          內(nèi)容長(zhǎng)度(Content-Length)

          截止日期(Expire)

          追后修改時(shí)間(Last-Modified)

          多年來,響應(yīng)頭有所演化,因此,最初的規(guī)范(可以從http:///http://www.w3.org/Protocols/rfc2616/rfc2616-sec6.html訪問)只對(duì)其中某些項(xiàng)(比如狀態(tài))而言是正確的。

          另外,有些響應(yīng)頭會(huì)顯示。服務(wù)器軟件以及響應(yīng)發(fā)出的日期和時(shí)間。如果你允許Internet上的每個(gè)人看到你正在使用的服務(wù)器和平臺(tái),那么現(xiàn)在就應(yīng)該確保你安裝了最新的補(bǔ)丁,并阻止了一切已知的漏洞。

          請(qǐng)?zhí)貏e注意Content-Type頭信息。大多數(shù)時(shí)間它只不過是像“text/html;charset=UFT-8”這樣的內(nèi)容,表示正常的HTML響應(yīng)和編碼。不過,它也可能引用外部應(yīng)用或引起異常的瀏覽器行為,而這些異常之處正式攻擊可能悄悄潛入的地方。

          例如,已知有些舊版的PDF閱讀器會(huì)執(zhí)行通過查詢字符串傳入的JavaScript(詳細(xì)情況請(qǐng)?jiān)L問http://www.adobe.com/support/security/advisories/apsa07-01.html)。如果你的應(yīng)用提供PDF,那么它是直接將Content-Type設(shè)置為applicant/pdf嗎?又或者它設(shè)置了Content-Disposition頭信息,要求用戶先下載PDF,從而避免了任何JavaScript趁虛而入?

          動(dòng)態(tài)重定向是另一項(xiàng)危險(xiǎn)的特性,因?yàn)樗鼈兛赡軙?huì)被攻擊者用來將惡意網(wǎng)站的鏈接偽裝成你的網(wǎng)站的鏈接,從而濫用了用戶對(duì)你的網(wǎng)站的信任。作為鏈接,動(dòng)態(tài)重定向通常具有如下形式:

          http://www.example.com/reirect.php?url=http://ha.ckers.org

          可以看到,這些細(xì)節(jié)可能很難對(duì)付。如果你的應(yīng)用使用某種特殊的頭信息來處理文件上傳、下載、重定向或任何其他事務(wù),那么請(qǐng)確保研究了所有具體的安全防范措施,因?yàn)閷?shí)際的危險(xiǎn)要比這里所能列出的還要多。

          新的響應(yīng)頭仍在不斷地被開發(fā)出來。TrackBack、PingBack和RefBack是一種新的、通常被稱為L(zhǎng)inkBack的Web功能的相互競(jìng)爭(zhēng)的標(biāo)準(zhǔn)。這些LinkBack提供了一種雙向的鏈接功能。它們因?yàn)橛狭水?dāng)前的博客熱而備受歡迎。

          例如,如果Fred從自己的博客鏈接到Wilma的博客,那么他們的博客托管服務(wù)可以使用某種標(biāo)準(zhǔn)進(jìn)行通信,于是Wilma的博客將顯示Fred鏈接到她的博客。HTTP頭可幫助識(shí)別使用的是哪些標(biāo)準(zhǔn),并傳送鏈接信息。

          搜索微信公眾號(hào):TestingStudio霍格沃茲的干貨都很硬核

          了提升瀏覽器加載頁面資源的性能,對(duì)于js、css、圖片等靜態(tài)資源,web服務(wù)器往往會(huì)通過Cache-Control、ETag/If-None-Match、Last-Modified/If-Modified-Since、Pragma、Expires、Date、Age等頭部來控制、管理、檢測(cè)這類資源對(duì)緩存機(jī)制的使用情況。同時(shí),為了使新版本的js、css等資源立即生效,一種比較通行的做法是為js、css這些文件名添加一個(gè)hash值。這樣當(dāng)js、css內(nèi)容發(fā)生變化時(shí),瀏覽器獲取的是不同的js、css文件。在這種情況下,舊版本的index.html文件可能是這樣的:

          <!DOCTYPE html>
          <html>
              <head>
                  <meta charset=utf-8>
                  <title>測(cè)試</title>
                  <meta http-equiv=X-UA-Compatible content="IE=Edge">
                  <meta name=viewport content="width=device-width,minimum-scale=1,maximum-scale=1">
                  <link href=/static/css/main.4656e35c1e8d4345f5bf.css rel=stylesheet>
              </head>
              <style>
                  html, body {
                      width: 100%;
                  }
              </style>
              <body>
                  <div id=newMain></div>
                  <script type=text/javascript src=/static/js/main-4656e35c1e8d4345f5bf.js></script>
              </body>
          </html>
          


          當(dāng)項(xiàng)目的js、css內(nèi)容發(fā)生了變化時(shí),新版本的index.html文件內(nèi)容變成這樣的(js和css文件名攜帶了新的hash值1711528240049):

          <!DOCTYPE html>
          <html>
              <head>
                  <meta charset=utf-8>
                  <title>測(cè)試</title>
                  <meta http-equiv=X-UA-Compatible content="IE=Edge">
                  <meta name=viewport content="width=device-width,minimum-scale=1,maximum-scale=1">
                  <link href=/static/css/main.1711528240049.css rel=stylesheet>
              </head>
              <style>
                  html, body {
                      width: 100%;
                  }
              </style>
              <body>
                  <div id=newMain></div>
                  <script type=text/javascript src=/static/js/main-1711528240049.js></script>
              </body>
          </html>
          


          因?yàn)閕ndex.html文件一般會(huì)設(shè)置為不緩存,這樣用戶每次訪問首頁時(shí),都會(huì)從web服務(wù)器重新獲取index.html,然后根據(jù)index.html中的資源文件是否變化,從而決定是否使用緩存的文件。這樣既能讓用戶立即獲取最新的js、css等靜態(tài)資源文件,又能充分地使用緩存。index.html的響應(yīng)頭大概長(zhǎng)這樣:

          但是為了保證系統(tǒng)的高可用,web后端往往由多個(gè)實(shí)例提供服務(wù),用戶請(qǐng)求會(huì)在多個(gè)服務(wù)實(shí)例間進(jìn)行負(fù)載均衡。而系統(tǒng)升級(jí)過程中,會(huì)存在多個(gè)版本共存的現(xiàn)象。這時(shí),如果用戶從舊版本實(shí)例上獲取了index.html文件,然后再去獲取舊版本的js、css文件(main-4656e35c1e8d4345f5bf.js和main.4656e35c1e8d4345f5bf.css),但是請(qǐng)求卻分發(fā)到了新版本服務(wù)實(shí)例上,這時(shí)因?yàn)樾掳姹痉?wù)實(shí)例只有main-1711528240049.js和main.1711528240049.css文件,就會(huì)導(dǎo)致訪問失敗。反過來,如果從新版本實(shí)例上獲取了index.html文件,在請(qǐng)求相應(yīng)的js、css文件時(shí),也可能被分發(fā)到舊版本實(shí)例上,也導(dǎo)致訪問失敗。

          解決方法:

          1)首先,改造一下index.html文件中引用js、css等靜態(tài)資源的路徑,添加一個(gè)版本號(hào),如v1、v2,這樣index.html文件對(duì)js、css的引用變?yōu)椋?/p>

          <link href=/static/v1/css/main.1711528240049.css rel=stylesheet>
          <script type=text/javascript src=/static/v1/js/main-1711528240049.js></script>
          


          2)使用灰度發(fā)布策略升級(jí)系統(tǒng),具體步驟如下(假設(shè)系統(tǒng)包含A、B兩個(gè)服務(wù)實(shí)例)

          1. 升級(jí)前(穩(wěn)態(tài)),在應(yīng)用網(wǎng)關(guān)(代理)上配置路由策略V1,該路由策略的功能為:匹配路徑前綴/static/v1的請(qǐng)求負(fù)載均衡分發(fā)到A、B兩個(gè)服務(wù)實(shí)例
          2. 將待升級(jí)的服務(wù)實(shí)例A從路由策略V1中摘除掉,這時(shí)用戶請(qǐng)求只會(huì)發(fā)送給實(shí)例B
          3. 待實(shí)例A上所有進(jìn)行中的請(qǐng)求都處理完后,就可以安全的停掉舊的服務(wù),替換為新的服務(wù),這時(shí)還不會(huì)有請(qǐng)求分發(fā)到實(shí)例A
          4. 待實(shí)例B測(cè)試功能正常后,在應(yīng)用網(wǎng)關(guān)(代理)上新增一條路由策略V2,該路由策略的功能為:匹配路徑前綴/static/v2的請(qǐng)求分發(fā)到服務(wù)實(shí)例A。這時(shí),從服務(wù)實(shí)例A上獲取的index.html文件引發(fā)的后續(xù)js、css請(qǐng)求,都會(huì)分發(fā)到服務(wù)實(shí)例A,從服務(wù)實(shí)例B上獲取的index.html文件引發(fā)的后續(xù)js、css請(qǐng)求,都會(huì)分發(fā)到服務(wù)實(shí)例B
          5. 繼續(xù)將實(shí)例B從路由策略V1中摘掉,然后升級(jí)實(shí)例B,將實(shí)例B添加到路由策略V2中
          6. 所有的流量都切換到了路由策略V2中,下線路由策略V1。完成整個(gè)升級(jí)過程,實(shí)現(xiàn)了前端的無損升級(jí)


          作者:movee
          鏈接:https://juejin.cn/post/7353069220827856946


          主站蜘蛛池模板: 亚洲一区二区三区国产精品无码| 亚洲香蕉久久一区二区三区四区| 91精品福利一区二区| 波多野结衣一区视频在线| 亚洲一区二区三区乱码A| 欧美日韩综合一区二区三区| 精彩视频一区二区| 中文字幕日韩一区二区三区不卡| 无码毛片一区二区三区中文字幕 | 无码av免费毛片一区二区| 国产福利电影一区二区三区,日韩伦理电影在线福 | 国产一区玩具在线观看| 国产一区二区三区在线电影| 日韩成人无码一区二区三区| 成人精品视频一区二区三区| 欧洲精品无码一区二区三区在线播放| 丰满爆乳一区二区三区| 国产激情一区二区三区在线观看| 一区二区三区日韩精品| 99久久国产精品免费一区二区| 丰满岳妇乱一区二区三区| 精品无码成人片一区二区| 成人精品一区二区电影| 国产福利无码一区在线| 欧美日本精品一区二区三区| 一区二区三区在线观看| 亚洲午夜精品一区二区麻豆| 日韩最新视频一区二区三| 亚洲午夜一区二区三区| 亚洲日韩中文字幕无码一区| 99久久精品午夜一区二区| 国产午夜精品一区二区三区极品| 99精品国产高清一区二区麻豆 | 亚洲一区二区三区偷拍女厕| 亚洲色精品aⅴ一区区三区| 日本不卡一区二区三区| 精品日韩一区二区三区视频 | 国产萌白酱在线一区二区| 风流老熟女一区二区三区| 亚洲一区视频在线播放| 国产精品毛片一区二区三区|