初識請求和響應

2021-07-06 02:27:05 字數 1386 閱讀 4170

經常訪問各種**,之前一直沒去研究這背後的執行原理,學了web容器後有了初步的了解。

1、請求。

請求協議的格式如下:請求首行;請求頭資訊;空行;請求體。瀏覽器傳送給伺服器的內容就這個格式的,如果不是這個格式伺服器將無法解讀!在http

協議中,請求有很多請求方法,其中最為常用的就是

get和

post

。post

請求是可以有體的,而

get請求不能有請求體。

2、響應。

響應內容是由伺服器傳送給瀏覽器的內容,瀏覽器會根據響應內容來顯示。響應協議的格式如下:響應首行;響應頭資訊;空行;響應體。響應頭對瀏覽器來說很重要,它說明了響應的真正含義。例如200

表示響應成功了,

302表示重定向,這說明瀏覽器需要再發乙個新的請求。一些常見的響應碼如下:

200:請求成功,瀏覽器會把響應體內容(通常是

html

)顯示在瀏覽器中;

404:請求的資源沒有找到,說明客戶端錯誤的請求了不存在的資源;

500:請求資源找到了,但伺服器內部出現了錯誤;

302:重定向,當響應碼為

302時,表示伺服器要求瀏覽器重新再發乙個請求,伺服器會傳送乙個響應頭

location

,它指定了新請求的

url位址;

304:當使用者第一次請求

index.html

時,伺服器會新增乙個名為last-modified響應頭,這個頭說明了index.html

的最後修改時間,瀏覽器會把

index.html

內容,以及最後響應時間快取下來。當使用者第二次請求

index.html

時,在請求中包含乙個名為

if-modified-since

請求頭,它的值就是第一次請求時伺服器通過last-modified響應頭髮送給瀏覽器的值,即index.html

最後的修改時間,

if-modified-since

請求頭就是在告訴伺服器,我這裡瀏覽器快取的

index.html

最後修改時間是這個,您看看現在的

index.html

最後修改時間是不是這個,如果還是,那麼您就不用再響應這個

index.html

內容了,我會把快取的內容直接顯示出來。而伺服器端會獲取

if-modified-since

值,與index.html

的當前最後修改時間比對,如果相同,伺服器會發響應碼

304,表示

index.html

與瀏覽器上次快取的相同,無需再次傳送,瀏覽器可以顯示自己的快取頁面,如果比對不同,那麼說明

index.html

已經做了修改,伺服器會響應

200。

請求和響應

1 response物件的字元輸入流在編碼時候,採用的是iso 8859 1的編碼表 在httpservletresponse介面中,有setcharacterencoding utf 8 方法來設定字元編碼 2 瀏覽器的解碼方式是gb2312,而我們使用的編碼是 utf 8 因此亂碼。sethea...

請求和響應

如果你正在做基於rest的web服務,你最好忽略request.post和request.get rest framework的request類擴充套件了標準的httprequest,新增對rest framework的靈活請求解析和請求身份驗證的支援。rest framework的請求物件提供靈活...

請求和響應

post方式請求 request.setcharacterencoding utf 8 response.setcontenttype text html charset utf 8 get方式請求 get方式請求的正文是在位址列中,在tomcat8.5版本以後,tomacat伺服器已經幫我們解決了...