日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

HTTP 缓存

發(fā)布時間:2025/5/22 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 HTTP 缓存 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

HTTP && 緩存

一個GET請求

GET請求的所有參數(shù)都會在URL中體現(xiàn)

GET http://admin_test.oa.com/qvideo_check?m=release&a=recommend_check&ticket=xxx HTTP/1.1
Host: qunadmin_test.oa.com
Connection: keep-alive
Cache-Control: max-age=0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,/;q=0.8
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.107 Safari/537.36
Accept-Encoding: gzip, deflate, sdch
Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.6,en;q=0.4,ja;q=0.2
Cookie: pgv_pvi=33174528; pgv_pvid=5511540156; ext-terminal=n%3A1; km_u=d8e2d0f081e337e5f39795c8200e49f21d12548710fc0d9d40cc134f3bea57ff5f4f2963cb532c97; t_uid=rakuluo; km_uid=luo; ; TCOA_TICKET=436F5964EBF9BFE887E534515FA5327F46673896BF686CC0FFA2D92CEFE263CEE2ED2082BFFC0F363DBA8AD2B5D38F12E53AB0E2D263E8B2AABAB1FA42EB5D9BCA53A608B9DA7B8FF26947AA9150049D86798FEF9F71BEADED4133410949366B66ABFA3CAC6859F1B4C8D1825E42637AC5AA0A2697B8FB0A0F277AE69EE65C7488BC1F641175932A2447540815637B78AC7B0F202B7798D2A2AF6CC502621AE55E3320B1C5A0D4F7767F50D3B4980DC4E099583885644566; ticket=436F5964EBF9BFE887E534515FA5327F3FC0EC28BB30AB7113E34EEA91ACF0A49D54D2F81DC1CEE81693AFCA142CDC90220CEB2729C8D92A93C338D292E5083BB74AC565C96148284E04B136BFD6837E9B5C9817CA57B3D2E673CB640C41238B426EF92B41AC12CA82827F631B52EEE1CCD21E694AD93D1B4DFEB63DA6AE16A90359666D500357DCA5AF5258D6848A7826AC58480D0B9A357D08B936C085E53CDD84C55636F973840

一個POST請求

包括請求頭和請求體(請求體內(nèi)含參數(shù))兩個部分 中間是一個空行
很容易看出這是一個HTTP 1.1類型的請求
POST http://admin_test.oa.com/qvk HTTP/1.1
Host: qunadmin_test.oa.com
Connection: keep-alive
Content-Length: 196
Origin: http://admin_test.oa.com
X-Requested-With: XMLHttpRequest
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.107 Safari/537.36
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Accept: /
Referer: http://admin_test.com/.....
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.6,en;q=0.4,ja;q=0.2
Cookie: pgv_pvi=33174528; pgv_pvid=5511540156; ext-terminal=n%3A1; km_u=d8e2d0f081532c97; t_uid=rakuluo; km_uid=rakuluo; t_u=3eaac1dbd7b54763%7C845b1588bc2614cb

m=release&a=account_check&ticket=6eb657ca-a01f-11e3-9337-001517bed8zae6&json=%7B%22gid%22%3A1234567%2C%22owner_uin%22%3A1234567%2C%22audit_status%22%3A2%2C%22audit_reason%22%3A%22no%20reason%22%7D

一個上傳圖片的POST請求

POST http://localhost/github/repo/drag/ImgUpload/upload.php HTTP/1.1
Host: localhost
Connection: keep-alive
Content-Length: 138569
Origin: http://localhost
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.107 Safari/537.36
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryV9kSbS9Xym2YSdfs
Accept: /
Referer: http://localhost/github/repo/drag/ImgUpload/
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.6,en;q=0.4,ja;q=0.2

------WebKitFormBoundaryV9kSbS9Xym2YSdfs
Content-Disposition: form-data; name="file"; filename="2015-06-19 162748.jpg"
Content-Type: image/jpeg
! Exif MM *
....

Keep Alive

Connection請求頭的值為Keep-Alive時,客戶端通知服務(wù)器返回本次請求結(jié)果后保持連接;Connection請求頭的值為close時,客戶端通知服務(wù)器返回本次請求結(jié)果后關(guān)閉連接

持久連接是HTTP1.1 中的

普通模式 每個請求/應(yīng)答客戶和服務(wù)器都要新建一個連接,完成之后立即斷開連接

從HTTP/1.1起,默認都開啟了Keep-Alive,保持連接特性,簡單地說,當一個網(wǎng)頁打開完成后,客戶端和服務(wù)器之間用于傳輸HTTP數(shù)據(jù)的TCP連接不會關(guān)閉,如果客戶端再次訪問這個服務(wù)器上的網(wǎng)頁,會繼續(xù)使用這一條已經(jīng)建立的連接。

  Keep-Alive不會永久保持連接,它有一個保持時間,可以在不同的服務(wù)器軟件(如Apache)中設(shè)定這個時間。

Keep Alive 應(yīng)用場景

參考
http://blog.csdn.net/hguisu/article/details/8608888

訪問一個包含有許多圖像的網(wǎng)頁文件的整個過程包含了多次請求和響應(yīng),每次請求和響應(yīng)都需要建立一個單獨的連接,每次連接只是傳輸一個文檔和圖像,上一 次和下一次請求完全分離。即使圖像文件都很小,但是客戶端和服務(wù)器端每次建立和關(guān)閉連接卻是一個相對比較費時的過程,并且會嚴重影響客戶機和服務(wù)器的性能。

HTTP1.1支持持久連接,在一個TCP連接上可以傳送多個HTTP請求和響應(yīng),減少了建立和關(guān)閉連接的消耗和延遲。一個包含有許多圖像的網(wǎng)頁文件的多個請求和應(yīng)答可以在一個連接中傳輸

響應(yīng)長度

  • 若響應(yīng)中出現(xiàn)了Transfer-Encoding:chucked 表示響應(yīng)長度不固定
    transfer-length由“chunked” 傳輸編碼定義,除非消息由于關(guān)閉連接而終止
  • 若響應(yīng)中出現(xiàn)的是 Content-Length: xxx 其值表示 entity-length(實體長度)和transfer-length(傳輸長度)[一般情況下他們長度是一致的 不一致則不能響應(yīng) Content-Length]
    同時接收到Transfer-Encoding字段和Content-Length頭字段,那么必須忽略Content-Length字段

    響應(yīng)長度的計算方式
    一個字符算一個長度 一個中文字符2個

204和304

不含有消息體的響應(yīng)1xx 204[請求成功 不用刷新也不用重定向] 304

緩存

參考
http://blog.csdn.net/hguisu/article/details/8608888

在HTTP/1.0中,使用Expire頭域來判斷資源的fresh或stale,并使用條件請求(conditional request)來判斷資源是否仍有效。例如,cache服務(wù)器通過If-Modified-Since頭域向服務(wù)器驗證資源的Last-Modefied頭域是否有更新,源服務(wù)器可能返回304(Not Modified),則表明該對象仍有效;也可能返回200(OK)替換請求的Cache對象

為了使caching機制更加靈活,HTTP/1.1增加了Cache-Control頭域(請求消息和響應(yīng)消息都可使用),它支持一個可擴展的指令子集:例如max-age指令支持相對時間戳;private和no-store指令禁止對象被緩存;no-transform阻止Proxy進行任何改變響應(yīng)的行為。

HTTP/1.1中引入了一個ETag頭域用于重激活機制,它的值entity tag可以用來唯一的描述一個資源。請求消息中可以使用If-None-Match頭域來匹配資源的entitytag是否有變化。
例如響應(yīng)的ETag:"553dcec3-3fd"
If-None-Match:"553dcec3-3fd" 他們是匹配的 可以從緩存拿

請求頭總結(jié)

參考
https://www.byvoid.com/blog/http-keep-alive-header
http://blog.csdn.net/hguisu/article/details/8683290

Transport頭域

  • Connection: close(告訴WEB服務(wù)器或者代理服務(wù)器,在完成本次請求的響應(yīng)后,斷開連接,不要等待本次連接的后續(xù)請求了) keepalive(告訴WEB服務(wù)器或者代理服務(wù)器,在完成本次請求的響應(yīng)后,保持連接,等待本次連接的后續(xù)請求)
  • Host:指定被請求資源的Internet主機和端口號

Client 頭域

  • Accept:告訴WEB服務(wù)器自己(瀏覽器)接受什么介質(zhì)類型(MIME),* 代表任意類型 Accept: / 代表瀏覽器可以處理所有類型

  • Accept-Encoding 告訴服務(wù)器,聲明瀏覽器支持的編碼方法 通常指定壓縮方法,是否支持壓縮,支持什么壓縮方法(gzip,deflate),(注意:這不是只字符編碼);
    Accept-Encoding: compress, gzip //支持compress 和gzip類型

    在Linux中經(jīng)常會用到后綴為.gz的文件,它們就是GZIP格式的。現(xiàn)今已經(jīng)成為Internet 上使用非常普遍的一種數(shù)據(jù)壓縮格式

  • Accept-Charset: 瀏覽器申明自己接收的字符集

Cache頭域

  • Cache-Control[響應(yīng)中也有次頭域]
    • no-cache 請求的資源不會緩存
    • max-age(只接受 Age 值小于 max-age 值,并且沒有過期的對象
    • min-fresh:(接受其新鮮生命期大于其當前 Age 跟 min-fresh 值之和的緩存對象)
  • If-Modified-Since:把瀏覽器端緩存資源的最后修改時間發(fā)送到服務(wù)器去.務(wù)器會把這個時間與服務(wù)器上實際文件的最后修改時間進行對比。如果時間一致,那么返回304,客戶端就直接使用本地緩存文件。如果時間不一致,就會返回200和新的文件內(nèi)容。客戶端接到之后,會丟棄舊文件,把新文件緩存起來,并顯示在瀏覽器中。[不同的機器可能會有時間不同步的問題 所以HTTP1.1引入Etag]
  • If-Node-Match: If-None-Match和ETag一起工作,工作原理是在HTTP Response中添加ETag(類似于MD5一樣的文件標識碼)信息。 如果服務(wù)器驗證資源的ETag沒有改變(該資源沒有更新),將返回一個304狀態(tài)告訴客戶端使用本地緩存文件。否則將返回200狀態(tài)和新的資源和Etag.
    請求If-None-Match:"5551df47-6c4"
    響應(yīng)頭中ETag:"5551df47-6c4" 兩者匹配 可以從緩存中取資源
  • Pargma只有一個用法, 例如: Pragma: no-cache 請求的資源不會被緩存

Cookie頭域

Cookie: 最重要的header, 將cookie的值發(fā)送給HTTP 服務(wù)器

Entity頭域

  • Content-Length作用:發(fā)送給HTTP服務(wù)器數(shù)據(jù)的長度。即請求消息正文的長度
  • Content-Type:application/x-www-form-urlencoded

其他域

  • Referer:瀏覽器向 WEB 服務(wù)器表明自己是從哪個 網(wǎng)頁/URL 獲得/點擊 當前請求中的網(wǎng)址/URL

響應(yīng)頭總結(jié)

Cache頭域

  • Date: 響應(yīng)的時間(服務(wù)器時間)
  • Expired[HTTP 1.0]:資源國企時間

Cookie/Login 頭域

  • p3p: 用于跨域設(shè)置Cookie, 這樣可以解決iframe跨域訪問cookie的問題
  • Set-Cookie 用于把cookie 發(fā)送到客戶端瀏覽器

Entity實體頭域

  • ETag[HTTP1.1]:就是一個對象(比如URL)的標志值,就一個對象而言,比如一個 html 文件,如果被修改了,其 Etag 也會別修改,所以ETag 的作用跟 Last-Modified 的作用差不多,主要供 WEB 服務(wù)器判斷一個對象是否改變了
    比如前一次請求某個 html 文件時,獲得了其 ETag,當這次又請求這個文件時,瀏覽器就會把先前獲得的 ETag 值發(fā)送給WEB 服務(wù)器,然后 WEB 服務(wù)器會把這個 ETag 跟該文件的當前 ETag 進行對比,然后就知道這個文件有沒有改變了。
  • Last-Modified:WEB 服務(wù)器認為對象的最后修改時間,
  • Content-Type:WEB服務(wù)器告訴瀏覽器自己響應(yīng)的對象的類型和字符集,
  • Content-Encoding: gzip WEB服務(wù)器表明自己使用了什么壓縮方法(gzip,deflate)
  • Content-Length: WEB 服務(wù)器告訴瀏覽器自己響應(yīng)的對象的長度。例如:Content-Length: 26012
  • Content-Type: WEB 服務(wù)器告訴瀏覽器自己響應(yīng)的對象的類型。例如:Content-Type:application/xml

Transport頭域

  • Connection
    • Connection: keep-alive 當一個網(wǎng)頁打開完成后,客戶端和服務(wù)器之間用于傳輸HTTP數(shù)據(jù)的TCP連接不會關(guān)閉,如果客戶端再次訪問這個服務(wù)器上的網(wǎng)頁,會繼續(xù)使用這一條已經(jīng)建立的連接
    • Connection: close 代表一個Request完成后,客戶端和服務(wù)器之間用于傳輸HTTP數(shù)據(jù)的TCP連接會關(guān)閉, 當客戶端再次發(fā)送Request,需要重新建立TCP連接。

其他頭域

  • Server:Apache/2.2.8 (Win32) PHP/5.2.5

  • Age:當代理服務(wù)器用自己緩存的實體去響應(yīng)請求時,用該頭部表明該實體從產(chǎn)生到現(xiàn)在經(jīng)過多長時間了。

  • Transfer-Encoding: WEB 服務(wù)器表明自己對本響應(yīng)消息體(不是消息體里面的對象)作了怎樣的編碼,比如是否分塊(chunked)

轉(zhuǎn)載于:https://www.cnblogs.com/cart55free99/p/4665615.html

總結(jié)

以上是生活随笔為你收集整理的HTTP 缓存的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 午夜私人影院 | 日夜夜操 | av一二三区 | 久久美 | 欧美 亚洲 另类 偷偷 自拍 | 99热这里只有精品3 成年人黄色网址 | 思思99热| 国产三级精品在线 | 免费在线日韩av | 欧美亚洲一| 精品一二三区久久aaa片 | www.国产成人| 91传媒入口 | 无码人妻精品丰满熟人区 | 亚洲女女做受ⅹxx高潮 | 豆花视频成人 | 狠狠爱网站 | 麻豆电影网站 | 黄色片大全| 67194午夜| 欧美久久久久久久久久久久 | 国产精品一二区在线观看 | 波多野吉衣一区 | 大度亲吻原声视频在线观看 | 波多野结衣中文字幕在线播放 | 一级黄色片在线免费观看 | 黄毛片在线观看 | 中文字幕免费高清视频 | 国产精品免费久久久 | 久操视频免费在线观看 | 久久精选 | 欧美性猛交xxx乱大交3 | 亚州一级| 男女拍拍拍网站 | 亚洲人精品午夜射精日韩 | 亚洲国产精品成人av | 免费一级毛片麻豆精品 | 成人免费看片又大又黄 | 一区二区三区视频在线免费观看 | 老鸭窝av在线 | 精品久久99 | 欧美日韩不卡 | 狠狠看 | 欧美精品xx | 看黄网站在线观看 | 九草在线视频 | 日韩一级片一区二区 | 美女黄色影院 | 亚洲国产乱 | 亚洲xxxxxx | 色老头一区二区三区在线观看 | youjizz国产精品 | 国产精品久久久久影院老司 | 日韩色图片 | 怡红院亚洲 | 欧美少妇喷水 | 狠狠2020| 夜噜噜 | 久久精品视频99 | 国产你懂得 | 99青青草| 好色婷婷 | 久久香蕉精品视频 | 日韩精品在线免费视频 | 国产精品视频免费播放 | 久久综合88 | 亚洲国产视频一区二区 | 免费亚洲网站 | xxx国产在线观看 | 一本一道久久综合狠狠老精东影业 | 成人av亚洲 | 成人av亚洲 | 射综合网 | 国产盗摄一区二区三区 | 久久久欧美精品sm网站 | 丝袜一级片 | a免费在线观看 | 激情影音 | 亚洲国产精品系列 | 久久久久在线视频 | 国产九九九精品 | 性欧美一区| 五月婷婷狠狠干 | 性折磨bdsm欧美激情另类 | 日韩性欧美 | 亚洲视频一二 | 一区亚洲 | 国产精品久久免费视频 | 中文在线视频观看 | 涩涩资源网 | 亚洲少妇18p| 手机天堂网 | 日韩伦理一区 | 日韩xxx视频 | 少妇裸体淫交视频免费看高清 | 图片区小说区视频区 | 青青操网 | 亚洲国产欧美一区 | 久久国产精彩视频 |