1,請求
- 請求是指瀏覽器端通過HTTP協議發送給服務器端的數據
-
響應是指服務器端接收到請求後做相應處理後再回復給瀏覽器端的數據
序號 | 方法 | 描述 |
---|---|---|
1 | GET | 請求指定的頁面信息,並返回實體主體 |
2 | HEAD | 類似於get請求,只不過返回的響應中沒有具體的內容,用於獲取報頭 |
3 | POST | 向指定資源提交數據進行處理請求(例如提交表單或者上傳文件)。數據被包含在請求體中。POST請求可能會導致新的資源的建立和/或已有資源的修改 |
4 | PUT | 從客戶端向服務器傳送的數據取代指定的文檔的內容 |
5 | DELETE | 請求服務器刪除指定的頁面 |
6 | CONNECT | HTTP/1.1協議中預留給能夠將連接改爲管道方式的代理服務器 |
7 | OPTIONS | 允許客戶端查看服務器的性能 |
8 | TRACE | 回顯服務器收到的請求,主要用於測試或診斷 |
Django中的請求對象
- 請求在Django中其實就是視圖函數的第一個參數,即HttpRequest對象
- Django接收到http協議的請求後,會根據請求數據報文創建HttpRequest對象
- HttpRequest對象 通過屬性描述了請求的所有相關信息
- path_info:URL字符串
- method:字符串,表示HTTP請求的方法,常用值:'GET'、'POST'
- GET:QueryDict查詢字典的對象,包含get請求方式的所有數據
- POST:QueryDict查詢字典的對象,包含post請求方式的所有數據
- FILES:類似字典的對象,包含所有的上傳文件信息
- COOKIES:Python字典,包含所有的cookie,鍵和值都爲字符串
- session:類似字典的對象,表示當前的會話
- body:字符串,請求體的內容(POST或PUT)
- scheme:請求協議('http'/'https')
- request.get_full_path():請求的完整路徑
- request.META:請求中的元數據(消息頭)
- request.META['REMOTE_ADDR']:客戶端IP地址
def test_request(request):
print('path info is',request.path_info)
print('method is',request.method)
print('querystring is',request.GET)
return HttpResponse('test request ok')
打印:
path info is /test_request
method is GET
querystring is <QueryDict: {'a': ['1'], 'b': ['2']}>
2,響應
響應狀態碼(HTTP Status Code)
- 200 - 請求成功
- 301 - 永久重定向-資源(網頁等)被永久轉移到其他URL
- 302 - 臨時重定向
- 404 - 請求的資源(網頁等)不存在
- 500 - 內部服務器錯誤
HTTP狀態碼由3個十進制數字組成,第一個十進制定義了狀態碼的類型,後兩個數字沒有分類的作用。HTTP狀態碼共分爲5種類型:
分類 | 分類描述 |
---|---|
1** | 信息,服務器收到請求,需要請求者繼續執行操作 |
2** | 成功,操作被成功接收並處理 |
3** | 重定向,需要進一步的操作以完成請求 |
4** | 客戶端錯誤,請求包含語法錯誤或無法完成請求 |
5** | 服務器錯誤,服務器在處理請求的過程中發生了錯誤 |
Django中的響應對象
構造函數格式:
HttpReponse(content=響應體,content_type=響應體數據類型,status=狀態碼)
作用:
向客戶端瀏覽器返回響應,同時攜帶響應體內容
- 參數:
- content:表示返回的內容
- status_code:返回的http響應狀態碼(默認爲200)
- content_type:指定返回數據的MIME類型(默認爲"text/html")。瀏覽器會根據這個屬性,來顯示數據。如果是text/html,那麼就會解析這個字符串,如果text/plain,那麼就會顯示一個純文本
常用的Content-Type如下:
- 'text/html'(默認的,html文件)
- 'text/plain'(純文本)
- 'text/css'(css文件)
- 'text/javascript'(js文件)
- 'multipart/form-data'(文件提交)
- 'application/json'(json傳輸)
- 'application/xml'(xml文件)
HttpResponse子類
類型 | 作用 | 狀態碼 |
---|---|---|
HttpResponseRedirect | 重定向 | 302 |
HttpResponseNotModified | 未修改 | 304 |
HttpResponseBadRequest | 錯誤請求 | 400 |
HttpRespnoseForbidden | 請求被禁止 | 403 |
HttpResponseServerError | 服務器錯誤 | 500 |