乙個請求在 Django 中的處理流程

2021-10-06 04:41:24 字數 1340 閱讀 1583

乙個請求在 django 中的處理流程:

瀏覽器| 構建 http 請求報文

| user request:

v網域名稱解析

| swiper.cn -> 11.22.33.44

v向伺服器建立網路連線: tcp 3 次握手^|

| 1. 與客戶端建立連線

| 2. 接收客戶端資料

vwsgi (web server gateway inte***ce)

| 將 「http 請求報文」 封裝成 httprequest 物件

|--------------------------------------> process_request (中介軟體)

vdjango 進行 url 對映, 匹配到乙個檢視函式

||--------------------------------------> process_view (中介軟體)

vview 檢視處理

| | 1. 引數處理

| | 2. 邏輯處理

| | 3. 資料處理

| | 4. 模板渲染 ----------------------> process_template (中介軟體)

| | 5. 將結果封裝成 httpresponse 物件

| || ------------------------------------> process_exception (中介軟體,捕獲檢視函式的異常,1-5過程有任何異常就跳過來)

||--------------------------------------> process_response (中介軟體)

vwsgi

| 將 httpresponse 物件封裝成 「http 響應報文」

| 1. 將 「http 響應報文」 傳送給客戶端

| 2. 斷開與客戶端的連線 (四次揮手)

v瀏覽器

django 的工作機制:

1.用manage.py runserver 啟動django伺服器時就載入了在同一目錄下的settings.py。該檔案包含了專案中的配置資訊,如urlconf等,其中最重要的配置就是root_urlconf,它告訴django哪個python模組應該用作本站的urlconf,預設的是urls.py

2.當訪問url的時候,django會根據root_urlconf的設定來裝載urlconf。

3.然後按順序逐個匹配urlconf裡的urlpatterns。如果找到則會呼叫相關聯的檢視函式,並把httprequest物件作為第乙個引數(通常是request)

4.最後該view函式負責返回乙個httpresponse物件。

乙個請求在Struts2框架中的處理步驟

乙個請求在struts2框架中的處理步驟 a 客戶端初始化乙個指向servlet容器的請求 b 根據web.xml配置,請求首先經過actioncontextcleanup過濾器,其為可選過濾器,這個過濾器對於struts2和其他框架的整合很有幫助 sitemesh plugin 主要清理當前執行緒...

Spring MVC 處理乙個請求的流程

乙個請求從客戶端發出到達伺服器,然後被處理的整個過程其實是非常複雜的。本部落格主要介紹請求到達伺服器被核心元件dispatcherservlet處理的整理流程 不包括filter的處理流程 1.處理流程分析 servlet處理乙個請求時會呼叫service 方法,所以dispatcherservle...

Tomcat處理乙個HTTP請求的過程

假設來自使用者的請求為 http localhost 8080 wsota wsota index.jsp 1 請求被傳送到本機埠8080,被在那裡偵聽的coyote http 1.1 connector獲得 2 connector把該請求交給它所在的service的engine來處理,並等待來自e...