經常訪問各種**,之前一直沒去研究這背後的執行原理,學了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伺服器已經幫我們解決了...