這個狀態碼就是304(not modified),對於這個**的解釋是"如果客戶端傳送了乙個帶條件的 get 請求且該請求已被允許,而文件的內容(自上次訪問以來或者根據請求的條件)並沒有改變,則伺服器應當返回這個狀態碼"。很明顯通過這個解釋,我們就明白了其實現的機理。我們要做的事情,僅僅是在傳送請求時將上次訪問的時間新增到header中,然後根據伺服器返回的狀態碼進行判斷。通常,在網頁發生變化時,伺服器會返回狀態碼200,而未發生變化則返回304。
dotnet在網路傳輸這塊已經提供了完善的api,接下來請看具體的實現方式。在這個例子中,通過訪問國家統計局的banner頁面(來演示,分別檢查3天前和3個月前該頁面是否發生了變化。
需要注意的是,在網頁內容沒有發生變化時,會丟擲異常,狀態碼只能在異常資訊中獲取。另外在返回200狀態碼時,有時候並不表示頁面發生了變化,因為有些伺服器不識別請求中的lastmodifiedsince內容。經過實際專案的實踐,發現大部分的靜態頁面內容,都能夠通過該方法判斷。
如有更好的方法,特別是判斷動態頁面是否更新的方法,歡迎交流。
http協議的狀態碼(網頁響應碼)
http協議的狀態碼 1xx 臨時響應 表示臨時響應並需要請求者繼續執行操作的狀態碼。100 繼續 請求者應當繼續提出請求。伺服器返回此 表示已收到請求的第一部分,正在等待其餘部分。101 切換協議 請求者已要求伺服器切換協議,伺服器已確認並準備切換。2xx 成功 表示成功處理了請求的狀態碼。200...
網頁狀態碼
http狀態碼 摘要說明 成功2xx 成功處理了請求的狀態碼。200伺服器已成功處理了請求並提供了請求的網頁。204伺服器成功處理了請求,但沒有返回任何內容。放重定向3xx 每次請求中使用重定向不要超過5次。301請求的網頁已永久移動到新位置。當urls發生變化時,使用301 搜尋引擎索引中儲存新的...
302狀態碼 小結HTTP狀態碼
作為乙個web開發工程師,我們平時都會和諸如200,304,404,501等狀態碼打交道,那麼它們是什麼意思呢?今天,我們來聊聊 http狀態碼是服務端返回給客戶端 因為這裡是web開發,這裡的客戶端指瀏覽器客戶端 的3位數字 這些狀態碼相當於瀏覽器和伺服器之間的對話資訊。它們相互溝通兩者之間的事情...