1. 程式人生 > >web請求操作背後發生了什麼?

web請求操作背後發生了什麼?

一個web請求,由客戶端發出,客戶端可以是瀏覽器,也可以是命令列視窗,或者是app(例如手機、pad上的各種應用),當用戶執行一個操作,從客戶端發出請求到收到響應結果,這中間都發生了什麼呢?我準備進行一些探討總結,這會是一系列文章,整個過程以PHP的請求響應為例,本文主要從巨集觀上先梳理整個過程。先奉上如下簡圖:

這裡寫圖片描述

一、客戶端 -> web 伺服器?

  1. 客戶端發起 web請求(可能是域名或者IP請求)
  2. 如果是域名請求,域名經過DNS解析為IP,找到主機地址
    (tcp/ip協議?http 協議,狀態碼502等的原因)
  3. 找到web伺服器(伺服器上還可能有虛擬主機vhosts,如何找到?)
  4. web伺服器如何處理請求,和語言解析器如何配合工作(併發,效率)

二、web伺服器接到請求 -> 拿到返回資源

  1. web伺服器如nginx、Apache或IIS等接收到客戶端的請求,處理為PHP標準輸入,呼叫Sapi程式執行(接收細節、併發等)
  2. Sapi程式呼叫PHP執行PHP指令碼(Sapi程式有大約5大類、sapi併發,執行細節)
  3. Sapi返回執行結果給web伺服器,web伺服器返回給客戶端

相關推薦

web請求操作背後發生什麼?

一個web請求,由客戶端發出,客戶端可以是瀏覽器,也可以是命令列視窗,或者是app(例如手機、pad上的各種應用),當用戶執行一個操作,從客戶端發出請求到收到響應結果,這中間都發生了什麼呢?我準備進行一些探討總結,這會是一系列文章,整個過程以PHP的請求響應為例

從點選Button到彈出一個MessageBox, 背後發生什麼

思考一個最簡單的程式行為:我們的Dialog上有一個Button, 當用戶用滑鼠點選這個Button時, 我們彈出一個MessageBox。 這個看似簡單的行為, 誰能說清楚它是如何執行起來的,背後究竟發生了什麼?  下面是我個人嘗試的解答: (1)我們的滑鼠點選事件到達裝置的

SAP CRM settype的建立,背後發生什麼

來自我的同事Sara。 當我們在CRM系統裡建立一個settype之後,其實系統後臺悄悄的幫我們建立了很多ABAP物件,比如對應的database tables, other ABAP Dictionary objects, function groups, function module

天啦嚕!生產機器連線數飆升到上萬,背後發生什麼?

個人部落格地址 studyidea.cn,點選檢視更多原創文章 0x00. 翻車現場 那是個月黑風高的夜晚,小黑哥成功將新版本釋出到了生產,小心翼翼檢查了應用日誌,後續測試小姐姐驗收成功。 恩,小黑哥我還是一如既往的穩~ 接著小黑哥就跑到樓下食堂吃個夜宵,誰知正吃到一半,線上運維同學發來幾條告警資訊,

js操作dom時發生什麽?

16px 什麽 pan bsp nbsp 元素 性能 需要 操作dom 每次對dom的操作都會觸發"重排",這嚴重影響到能耗,一般通常采取的做法是盡可能的減少dom操作來減少"重排" 處理方法:創建一個文檔碎片將需要添加的大量元素 先添加到文檔碎片中,

http請求過程(訪問一個頁面,發生怎樣的網路請求?)

域名解析->域名 ->快取->根域dns->頂級域dns->本域dns->伺服器IP 1.搜尋瀏覽器自身DNS快取,如果不存在或者過期(>60s)放棄 2.搜尋作業系統自身的dns快取 3.讀取本地的HOST檔案 4.瀏覽器發起一個DNS的

瀏覽器向伺服器請求一張圖片,到底發生什麼?

文章目錄 動因 HTTPWATCH 用IE訪問伺服器端的一張png圖片 觀察資料 結論 本文說明了http協議傳輸圖片的互動資料的過程和測試方法。 動因 學習程式設計,其實不在於程式設計本身。千

【Python web 開發】django 從請求到響應經歷什麼?

  setting中註冊的middleware會將使用者request的資料經過這些middlware中有process_request方法和process_response方法註冊進入。 當用戶的request進入view之前會將這些process_request通通呼叫一遍

Java Web基礎知識之檔案下載:當你下載檔案的時候到底發生什麼?

從網上下載檔案幾乎是每個人都會遇到的,不管是圖片、文字檔案還是一些視訊,但是我們真的知道在下載的過程中發生了什麼嗎?本文章就學習一下其中的原理。 關於檔案下載存在靜態下載和動態下載兩種,靜態下載是比較容易的,我們平常在網上對很多圖片和和視訊等的下載有很多其實就是靜態下載,那

一次完整的HTTP請求與響應都發生什麼

本篇介紹的是一次完成的http請求都經過了那些步驟,這些步驟相應的作用又是什麼 1.在瀏覽器端輸入網站的url地址 只有知道了一個網站的url地址才能訪問到這個網站 2.瀏覽器查詢快取 瀏覽器會查詢瀏覽器快取,系統快取,路由快取,如果沒有的話 繼續下一步,如果有的

怎麼獲取URL欄的GET或POST請求、面試題:輸入url按回車發生什麼、JDBC的引數

我本來想查“為什麼URL欄輸入網址,按回車後,使用GET請求方法”(我知道Http請求預設使用GET方法) (1)GET和POST兩種基本請求方法的區別【講解方式很有趣很幽默】 (2)在URL輸入算get還是post【重點講了get與post在"表現形式上、原理上、Http響應上"

一次完整的HTTP請求發生什麼?

1. 域名解析 首先瀏覽器會解析域名(準確的叫法應該是主機名)得到對應的IP地址,那怎麼解析到對應的IP地址? ① 瀏覽器會首先搜尋瀏覽器自身的DNS快取(快取時間比較短,大概只有1分鐘,且只能容納1000條快取),看自身的快取中是否有該域名對應的條目,而且

[C++]HelloWorld背後的故事!總結一下在我們執行exe可執行檔案前究竟發生什麼!

人物介紹 姓名 HelloWorld 性別 .cpp 住址 D:\ 身份證號(SHA1) 25106D2879A9EA300BB264F8155A71D7C44DA2E8 故事簡介 編寫原始檔 預編譯 編譯 彙編 連結 一、編寫原始檔   原始碼: #include <

xubuntu 17.04 和 iphone 6互傳文件方法——使用libimobiledevice就可以像u盤一樣操作文件

ges this med ipo val apt app edev pair I need to preface this by saying I‘m also new to Linux, but I‘ve got it working I think. The inst

從瀏覽器地址欄輸入網址,到網頁徹底打開,中間都發生什麽?

流氓軟件 打開 軟件 獲取 大量 上一個 負責 一段 動態腳本 從瀏覽器地址欄輸入網址,到網頁徹底打開,中間都發生了什麽? 這是一道經典面試題,以前我以為只有我喜歡出這道題,後來在微博上發現其他技術大牛也出這道題。 這道題其實測試的不是具體特定的技術,而是對整個上網

在瀏覽器中輸入URL按下回車鍵後發生什麽

顯示 瀏覽器中 鏈路 url 傳輸層 查詢 sso mac css 在瀏覽器中輸入URL按下回車鍵後發生了什麽 [1]解析URL[2]DNS查詢,解析域名,將域名解析為IP地址[3]ARP廣播,根據IP地址來解析MAC地址[4]分別從應用層到傳輸層、網絡層和數據鏈路層分別加

在 Server 2008 企業版下, 安裝 IIS 7 後,勾選好 請求篩選模塊。安裝完畢後,"請求篩選"卻不顯示!

顯示 server ext table figure feature new ui s where 下載並安裝 Administration Pack 到你的Windows Server 2008 上。可以通過下面的鏈接來下載Administration Pack。 htt

簡單的JDBC的增刪改查操作->抽取基類,附源碼

exceptio tac catch main trace 工具 nload null user 1.主程序 1 package com.xyyz.jdbc; 2 3 import java.sql.Connection; 4 import java.sql.D

Hbuilder MUI裏面使用java.net.URL發送網絡請求,操作cookie

line console ptc adl ima header str .net bre 1. 引入所需網絡請求類: var URL = plus.android.importClass("java.net.URL"); v