http狀態**
1、指定狀態碼:
setstatus
httpservletresponse的setstatus方法。如果響應的狀態**比較特殊,並且伴有相關的文件內容,那麼一定要在用printwriter實際返回任何內容之前呼叫setstatus,因為沒有明確規範規定servlet一定要乙個空行、因此,必須在使用printwriter之前設定狀態**,或者在設定狀態**時,仔細核實緩衝區尚未被清楚,內容尚未實際發往瀏覽器。
setstatus最好不要直接設定明確的數字,而使用httpservletresponse中定義的常量。
sendredirect和senderror
httpservletresponse專為兩種常見的情況提供了快捷方法。兩個方法都丟擲ioexception。
public void sendredirect(string url)
狀態碼302命令連線到新的位置。sendredirect生成302響應以及location報頭
public void sendeoor(int code, string message)
狀態碼404用於伺服器沒有找到文件的情況。senderror方法傳送狀態**以及一段簡短的訊息,這段訊息被自動安排到html中傳送給客戶。
2、狀態碼
100-199:10~199間的**都是資訊性的,標示客戶應該採取的其他動作
200-299:200~299間的值表示成功
300-399: 300~399間的值用於那些已經移走的檔案,常常包括location報頭,指出新的位址
400-499: 400~499間的值標示由客戶引發的錯誤
500-599:500~599表示由伺服器引發的錯誤
常見碼:
100:continue繼續
200:ok,一切正常
202:accepted,已接受
204:no content,沒有新文件
205:reset content,重置內容
301:moved permanently,被永久移動
302:found,找到
有乙個專門的方法,sendredirect,用response.setstatus(),以及response.setheader("location",url)相比,使用response.sendredirect(url)有許多優點。首先,他更簡短,使用也更容易。其次,使用sendredirect(url)時,servlet自動構建含有鏈結的頁面,引導那些不能自動跟重定向資訊的老版本瀏覽器。最後sendredirect還可以處理相對url,自動將它們轉換成對應的絕對url。
技術上一般認為僅當最初的請求為get時,瀏覽器才應自動執行重定向。
303:see other,檢查其他文件
304:not modified,未發生更改
307:temporary redirect,臨時重定向
400:bad request,錯誤請求
401:unauthorized,未授權
403:forbidden,資源不可用
404:not found,未找到
405:method not allowed,方法不允許
415:unsupported media type不支援的**型別
417:expectation failed,期望不能滿足
500:internal server error,伺服器內部錯誤
501:not implemented,未實現
503:service un**ailable,服務不可用
505:http version not supported,不支援的http版本
3、將使用者重定向到瀏覽器相關頁面的servlet
http響應報頭的生成:
最通用的方法是httpservletresponse.setheader方法
setheader(string headername, string headervalue)
除了通用的setheader方法之外,httpservletresponse還有兩個專門的方法,用來設定含有日期和整數的報頭:
setdateheader(string header, long milliseconds)
setintheader(string header, int headervalue)
http允許相同的報頭多次出現,有時候我們希望加入新的報頭,而非替換已有的同名報頭。可以使用containsheader進行檢查。
httpservletresponse還提供許多方便的方法來指定常用的報頭:
setcontenttype
setcontentlength
addcookie
sendredirect
理解http響應報頭:
allow:指定伺服器支援的請求方法
cache-control:這個報頭告訴瀏覽器或其他客戶,什麼環境可以安全地快取文件
public 文件可以快取
302狀態碼 小結HTTP狀態碼
作為乙個web開發工程師,我們平時都會和諸如200,304,404,501等狀態碼打交道,那麼它們是什麼意思呢?今天,我們來聊聊 http狀態碼是服務端返回給客戶端 因為這裡是web開發,這裡的客戶端指瀏覽器客戶端 的3位數字 這些狀態碼相當於瀏覽器和伺服器之間的對話資訊。它們相互溝通兩者之間的事情...
狀態碼202 HTTP狀態碼
當瀏覽者訪問乙個網頁時,瀏覽者的瀏覽器會向網頁所在伺服器發出請求。當瀏覽器接收並顯示網頁前,此網頁所在的伺服器會返回乙個包含http狀態碼的資訊頭 server header 用以響應瀏覽器的請求。http狀態碼的英文為http status code。下面是常見的http狀態碼 狀態碼詳細介紹說明...
http狀態碼含義
如果某項請求傳送到您的伺服器要求顯示您 上的某個網頁 例如,使用者通過瀏覽器訪問您的網頁或 googlebot 抓取網頁時 伺服器將會返回 http 狀態碼響應請求。此狀態 提供關於請求狀態的資訊,告訴 googlebot 關於您的 和請求的網頁的資訊。一些常見的狀態 為 1xx 臨時響應 表示臨時...