HTTP缓存返回状态码200和304的区别
HTTP緩存,也可以叫瀏覽器緩存
瀏覽器緩存有兩種:200 OK (from memory/disk cache) 和 304 Not Modified
1、200 OK (from memory/disk cache)
這種緩存方式已經很普遍,大部分網站的靜態文件都采用了,200 OK (from memory cache)或者200 OK (from disk cache)都是直接讀取客戶端的緩存,無需再請求服務器。一般是在Apache或者Nginx里設置,比如Nginx配置里會有類似這樣的配置:
location ~ .*.(gif|jpg|jpeg|png|bmp|swf)${expires 30d;}location ~ .*.(js|css)?${expires 12h;}
這樣就可以給靜態文件緩存了,在有效期內,瀏覽器會直接讀取客戶端的緩存,而不用再請求服務器,除非用戶清除了緩存或者使用Ctrl+F5強制刷新了頁面。
2、304 Not Modified(不會從服務器端獲取數據,而是直接使用直接第一次200 ok時獲取的緩存數據)
304緩存和上面最大的區別是瀏覽器需要向服務器詢問一次,如果服務器端認為沒有內容更新,直接返回304狀態碼,無需返回body內容,瀏覽器就會直接取緩存內容輸出,這樣省掉了沒必要的數據傳輸,也就提升了訪問速度。
3.常用的狀態碼整理:
常見狀態碼:
一些常見的狀態碼為:
200– 服務器成功返回網頁
404– 請求的網頁不存在
503– 服務器超時
下面提供 HTTP 狀態碼的完整列表。點擊鏈接可了解詳情。您也可以訪問HTTP 狀態碼上的 W3C 頁獲取更多信息。
1xx(臨時響應)
表示臨時響應并需要請求者繼續執行操作的狀態碼。
| 100(繼續) | 請求者應當繼續提出請求。服務器返回此代碼表示已收到請求的第一部分,正在等待其余部分。 |
| 101(切換協議) | 請求者已要求服務器切換協議,服務器已確認并準備切換。 |
2xx(成功)
表示成功處理了請求的狀態碼。
| 200(成功) | 服務器已成功處理了請求。通常,這表示服務器提供了請求的網頁。如果是對您的 robots.txt 文件顯示此狀態碼,則表示 Googlebot 已成功檢索到該文件。 |
| 201(已創建) | 請求成功并且服務器創建了新的資源。 |
| 202(已接受) | 服務器已接受請求,但尚未處理。 |
| 203(非授權信息) | 服務器已成功處理了請求,但返回的信息可能來自另一來源。 |
| 204(無內容) | 服務器成功處理了請求,但沒有返回任何內容。 |
| 205(重置內容) | 服務器成功處理了請求,但沒有返回任何內容。與 204 響應不同,此響應要求請求者重置文檔視圖(例如,清除表單內容以輸入新內容)。 |
| 206(部分內容) | 服務器成功處理了部分 GET 請求。 |
3xx(重定向)
要完成請求,需要進一步操作。通常,這些狀態碼用來重定向。Google 建議您在每次請求中使用重定向不要超過 5 次。您可以使用網站管理員工具查看一下 Googlebot 在抓取重定向網頁時是否遇到問題。診斷下的網絡抓取頁列出了由于重定向錯誤導致 Googlebot 無法抓取的網址。
| 300(多種選擇) | 針對請求,服務器可執行多種操作。服務器可根據請求者 (user agent) 選擇一項操作,或提供操作列表供請求者選擇。 |
| 301(永久移動) | 請求的網頁已永久移動到新位置。服務器返回此響應(對 GET 或 HEAD 請求的響應)時,會自動將請求者轉到新位置。您應使用此代碼告訴 Googlebot 某個網頁或網站已永久移動到新位置。 |
| 302(臨時移動) | 服務器目前從不同位置的網頁響應請求,但請求者應繼續使用原有位置來響應以后的請求。此代碼與響應 GET 和 HEAD 請求的 301 代碼類似,會自動將請求者轉到不同的位置,但您不應使用此代碼來告訴 Googlebot 某個網頁或網站已經移動,因為 Googlebot 會繼續抓取原有位置并編制索引。 |
| 303(查看其他位置) | 請求者應當對不同的位置使用單獨的 GET 請求來檢索響應時,服務器返回此代碼。對于除 HEAD 之外的所有請求,服務器會自動轉到其他位置。 |
| 304(未修改) |
自從上次請求后,請求的網頁未修改過。服務器返回此響應時,不會返回網頁內容。 如果網頁自請求者上次請求后再也沒有更改過,您應將服務器配置為返回此響應(稱為 If-Modified-Since HTTP 標頭)。服務器可以告訴 Googlebot 自從上次抓取后網頁沒有變更,進而節省帶寬和開銷。 |
| 305(使用代理) | 請求者只能使用代理訪問請求的網頁。如果服務器返回此響應,還表示請求者應使用代理。 |
| 307(臨時重定向) | 服務器目前從不同位置的網頁響應請求,但請求者應繼續使用原有位置來響應以后的請求。此代碼與響應 GET 和 HEAD 請求的 <a href=answer.py?answer=>301</a> 代碼類似,會自動將請求者轉到不同的位置,但您不應使用此代碼來告訴 Googlebot 某個頁面或網站已經移動,因為 Googlebot 會繼續抓取原有位置并編制索引。 |
4xx(請求錯誤)
這些狀態碼表示請求可能出錯,妨礙了服務器的處理。
| 400(錯誤請求) | 服務器不理解請求的語法。 |
| 401(未授權) | 請求要求身份驗證。對于登錄后請求的網頁,服務器可能返回此響應。 |
| 403(禁止) | 服務器拒絕請求。如果您在 Googlebot 嘗試抓取您網站上的有效網頁時看到此狀態碼(您可以在 Google 網站管理員工具診斷下的網絡抓取頁面上看到此信息),可能是您的服務器或主機拒絕了 Googlebot 訪問。 |
| 404(未找到) |
服務器找不到請求的網頁。例如,對于服務器上不存在的網頁經常會返回此代碼。 如果您的網站上沒有 robots.txt 文件,而您在 Google 網站管理員工具“診斷”標簽的 robots.txt 頁上看到此狀態碼,則這是正確的狀態碼。但是,如果您有 robots.txt 文件而又看到此狀態碼,則說明您的 robots.txt 文件可能命名錯誤或位于錯誤的位置(該文件應當位于頂級域,名為 robots.txt)。 如果對于 Googlebot 抓取的網址看到此狀態碼(在”診斷”標簽的HTTP 錯誤頁面上),則表示 Googlebot 跟隨的可能是另一個頁面的無效鏈接(是舊鏈接或輸入有誤的鏈接)。 |
| 405(方法禁用) | 禁用請求中指定的方法。 |
| 406(不接受) | 無法使用請求的內容特性響應請求的網頁。 |
| 407(需要代理授權) | 此狀態碼與 <a href=answer.py?answer=35128>401(未授權)</a>類似,但指定請求者應當授權使用代理。如果服務器返回此響應,還表示請求者應當使用代理。 |
| 408(請求超時) | 服務器等候請求時發生超時。 |
| 409(沖突) | 服務器在完成請求時發生沖突。服務器必須在響應中包含有關沖突的信息。服務器在響應與前一個請求相沖突的 PUT 請求時可能會返回此代碼,以及兩個請求的差異列表。 |
| 410(已刪除) | 如果請求的資源已永久刪除,服務器就會返回此響應。該代碼與 404(未找到)代碼類似,但在資源以前存在而現在不存在的情況下,有時會用來替代 404 代碼。如果資源已永久移動,您應使用 301 指定資源的新位置。 |
| 411(需要有效長度) | 服務器不接受不含有效內容長度標頭字段的請求。 |
| 412(未滿足前提條件) | 服務器未滿足請求者在請求中設置的其中一個前提條件。 |
| 413(請求實體過大) | 服務器無法處理請求,因為請求實體過大,超出服務器的處理能力。 |
| 414(請求的 URI 過長) | 請求的 URI(通常為網址)過長,服務器無法處理。 |
| 415(不支持的媒體類型) | 請求的格式不受請求頁面的支持。 |
| 416(請求范圍不符合要求) | 如果頁面無法提供請求的范圍,則服務器會返回此狀態碼。 |
| 417(未滿足期望值) | 服務器未滿足”期望”請求標頭字段的要求。 |
5xx(服務器錯誤)
這些狀態碼表示服務器在處理請求時發生內部錯誤。這些錯誤可能是服務器本身的錯誤,而不是請求出錯。
| 500(服務器內部錯誤) | 服務器遇到錯誤,無法完成請求。 |
| 501(尚未實施) | 服務器不具備完成請求的功能。例如,服務器無法識別請求方法時可能會返回此代碼。 |
| 502(錯誤網關) | 服務器作為網關或代理,從上游服務器收到無效響應。 |
| 503(服務不可用) | 服務器目前無法使用(由于超載或停機維護)。通常,這只是暫時狀態。 |
| 504(網關超時) | 服務器作為網關或代理,但是沒有及時從上游服務器收到請求。 |
| 505(HTTP 版本不受支持) | 服務器不支持請求中所用的 HTTP 協議版本。 |
內容來源轉自:
http://www.jb51.net/article/43143.htm
http://blog.sina.com.cn/s/blog_4c98b9600100jd4z.html
http://www.cnblogs.com/shanyou/archive/2012/05/01/2477500.html
https://blog.csdn.net/huwei2003/article/details/70139062
總結
以上是生活随笔為你收集整理的HTTP缓存返回状态码200和304的区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 蒙特卡洛积分法(一)
- 下一篇: 龙芯2f 8089D 笔记本 Debia