日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

OSI七层网络模型 TCP/IP五层网络模型

發布時間:2023/12/9 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 OSI七层网络模型 TCP/IP五层网络模型 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一個請求的生命周期(HTTP請求過程詳解、TCP/IP五層網絡模型)

一個請求的生命周期
前言:當我們從電腦上去訪問一個網址時,究竟發生了什么?這個問題可能是自己思考或者面試的時候問到,這里我們以訪問百度首頁為例,進行一個全面的HTTP請求分析。

核心概念
計算機網絡核心結構,就是TCP/IP五層網絡模型(OSI七層模型是將應用層分為了三層)

?

以及,每一層對應的協議

?


始于本地
鍵盤輸入:你要訪問www.baidu.com,自然需要在瀏覽器地址欄中使用鍵盤輸入(正常情況下),這個過程就涉及到輸入設備與計算機的交互了,這個屬于物理層,這里就不探討了(==其實是我不會)
請求域名:首先你訪問的是www.baidu.com,并不帶域名,所以瀏覽器會自動補全協議頭。但是我們知道,很多時候域名會有http和https,它倆的默認端口一個是80,一個是443,在這里,一般都是對應域名的網站做了端口轉發,http協議實現了HSTS機制來使得重定向到HTTPS下的域名。所以HTTP到HTTPS這個過程是服務器來完成的,至于瀏覽器的默認端口一直是80端口
路由轉發
IP查找:目前我們只知道了帶協議類型的域名,那么是如何到具體的服務器的呢?我們知道,對于因特網內每個公有地址IP都是唯一的(局域網內不一定),域名相當于IP的別名,因為我們無法去記住一大堆無意義的IP地址,但如果用一堆有意義的字母組成,大家就能快速訪問對應網站。
DNS解析:通過域名去查找IP,先從本地緩存查找,其中本地的hosts文件也綁定了對應IP,若在本機中無法查到,那么就會去請求本地區域的域名服務器(通常是你對應的網絡運營商如移動),這個通過網絡設置中的LDNS去查找,如果還是沒有命中的話,那么就去根域名服務器查找,這里有所有因特網上可訪問的域名和IP對應信息(根域名服務器全球共13臺)。至少到了這里,我們肯定能查找對應的IP了,要不就是這個域名不對。
路由轉發:然后我們通過網卡、路由器、交換機等設備,實現兩個IP地址之間的通信。這里用到的主要就是路由轉發技術,根據路由表去轉發報文。。。還有子網掩碼、IP廣播等等知識點。這里就不多做介紹了,計算機網絡里有詳細準確的概念~~
連接建立
三次握手:HTTP的底層基于TCP/IP協議,TCP連接的建立過程少不了三次握手。

?

第一次握手:客戶端主動發送SYN包到服務器,并進入SYN_SEND狀態,等待服務器確認
第二次握手:服務器收到SYN包并確認,發送SYN+ACK到客戶端,服務器進入SYN_RECV狀態
第三次握手:客戶端收到SYN+ACK包,發送ACK確認連接,發送完畢后客戶端和服務端進入ESTABLISHED狀態,完成三次握手
數據發送:建立完連接后,TCP才能真正的開始傳輸數據==。TCP會依次、有序的發送一定大小的報文,其中包括了超時重傳、擁塞窗口、慢開始快重傳等等概念。總之加了很多機制,用來保證數據包的完整、有序。當然以上都只是傳輸層中TCP做的事,實現上在應用層也加了很多機制。
HTTPS:

?


大家請看這張圖,一個完整的HTTPS由以上眾多模塊組成。
a. Queueing:請求等待時間
b. Stalled: 從TCP建立連接耗時
c. DNS Lookup:DNS解析
d. Initial connection:初始化連接
e. SSL:SSL就是HTTPS的重頭戲,相比于HTTP建立于TCP基礎上的明文傳輸,HTTPS基于SSL/TLS,而SSL/TLS又是基于TCP/IP,也就是說SSL/TLS基于TCP基礎上再做了一層封裝,對內容進行加密。對HTTPS如何實現加密感興趣的同學可以取看看相關的話題
f. TTFB:客戶端發起報文到服務器接收到第一個報文的耗時
g. Content Download:服務器響應網頁內容接收時間
GOOGLE原文解釋 文檔地址需翻墻

Queueing The browser queues requests when:

1There are higher priority requests.

2There are already six TCP connections open for this origin, which is the limit. Applies to HTTP/1.0 and HTTP/1.1 only.

3The browser is briefly allocating space in the disk cache

Stalled The request could be stalled for any of the reasons described in Queueing.
DNS Lookup The browser is resolving the request’s IP address.
Proxy negotiation The browser is negotiating the request with a proxy server.
Request sent The request is being sent.
ServiceWorker Preparation The browser is starting up the service worker.
Request to ServiceWorker The request is being sent to the service worker.
Waiting (TTFB) The browser is waiting for the first byte of a response. TTFB stands for Time To First Byte. This timing includes 1 round trip of latency and the time the server took to prepare the response.
Content Download The browser is receiving the response.
Receiving Push The browser is receiving data for this response via HTTP/2 Server Push.
Reading Push The browser is reading the local data previously received.

服務器處理
LVS架構:這個請求在到達某一個服務器前,可能還要經歷重重篩選==。反作弊判斷,網關過濾,CDN等等。其中大型網站最常見的是LVS架構。LVS分負載調度器,服務器池,共享存儲。主要就是為了分布式和高并發場景啦。
LVS文檔

?

代理服務器:接下來,這個請求總算到了服務器了。去監聽它的通常是代理服務器,如Nginx、Apache等。監聽到之后代理服務器會將請求轉發給對應的socket去處理。比如Nginx和PHP的交互就是Nginx將請求轉發給fastcgi_pass定義的socket(文件socket或IPsocket),然后通過fastcgi處理,才會真正將請求和參數丟給server,cgi-app。。。
程序處理
接下來就是代碼去處理具體的邏輯,然后通過response返回啦~~

?

?

在前兩篇文章中,我們完整的描述了計算機網絡 OSI 五層模型的相關內容。那么,本篇將會從一個實踐案例開始,帶你從整體上重新認識我們的計算機網絡。?

我們以訪問 Google 為例,當我們在瀏覽器地址欄中敲下回車鍵之后,整個計算機網絡將會發生什么呢??
本機的網絡相關參數如下:?

首先我們應用層的瀏覽器決定向 DNS?服務器請求解析域名「www.google.com」,那么就要遵循 DNS 協議。

DNS 運行在 53 號端口,于是瀏覽器會創建一個 UDP 套接字,標識該套接字的二元組分別是『目的 IP 地址』和『目的端口』。而套接字本質上就是為了唯一標識應用層進程,就是為了讓響應報文能夠找到目的地。

那么這里會創建一個 UDP 套接字,二元組為「本機 IP 地址 192.168.43.138」和「隨機產生一個未使用的端口號」。?
接著,瀏覽器將 DNS 請求報文封裝好推入套接字,開始我們的 DNS 解析過程。

有關 DNS 的相關細節,這里不再贅述了,可以參考前面的文章,拿到 DNS 服務器的響應報文,運輸層拆開數據報,得到該報文的目的 IP 地址和目的端口號,于是對應著去找套接字交付報文即可。

最終我們會從『本地 DNS 服務器』得到 Google 的 IP 地址為:172.194.72.105。?
整個 HTTP 請求可以說才剛剛開始:

應用層

瀏覽器封裝 HTTP 請求報文,然后創建一個 TCP 套接字,采用四元組標識,具體為「源 IP 地址:192.168.43.138」+「源端口號:隨機的,這里假設為 1234」+「目的 IP 地址:172.194.72.105」+「目的端口號:80」。?
HTTP 報文也就是我們的應用層數據報,大致是這樣的:?

指定了一些請求參數與動作,以及一些要求響應報文的返回格式要求,具體的我們不細說了。?
緊接著,這個報文會被推進 TCP 套接字中,等待運輸層來收取。

運輸層

運輸層收取了報文,并判斷與目的主機是否建立了 TCP 連接,這里假設沒有。?
那么,運輸層將不急著發送應用層數據,得先判斷與目的主機之間能夠正常通訊,也就是需要『握手』打招呼。?
『三次握手』的相關細節,我們這里也不再贅述了,上篇文章描述的很詳細了,通過『三次握手』,發送端和接收端確認過發送與確認序號,分配了相應的緩存資源等。?
一切準備就緒之后,運輸層將應用層發過來的數據報又一層封裝,添加進『源端口號』和『目的端口號』以及相關差錯檢驗字段。?
最后將 TCP 數據報向下傳遞到網絡層。

網絡層

網絡層其實很簡單,拿到數據報并封裝成 IP 數據報,即在原 TCP 報文的前提之上添加『源 IP 地址』和『目的 IP 地址』等字段信息。

然后交由數據鏈路層。

鏈路層

數據鏈路層拿到 IP 數據報,它需要封裝成以太網幀才能在網絡中傳輸,也就是它需要目的主機的 Mac 地址,然而我們只知道目的主機的 IP 地址。

所以,鏈路層有一個 ARP 協議,直接或間接的能夠根據目的 IP 地址獲得使用該 IP 地址的主機 Mac 地址。

當然,ARP 協議運行的前提是,目的 IP 地址和當前發送方主機處于同一子網絡中。如果不然,發送方將目的 Mac 地址填自己網關路由的 Mac 地址,然后通過物理層發送出去。

網關路由由于具有轉發表和路由選擇算法,所以它知道目的網絡該怎么到達,所以一路轉發,最終會發送到目的網絡的網關路由上。

最后,目的網絡的網關路由同樣會經由 ARP 協議,取得目的主機的 Mac 地址,然后廣播發送,最后被目的主機接受。?
這樣谷歌的服務器就接受到一個 HTTP 請求,于是它解析這個請求,確定該請求的動作是什么,也就是它需要什么東西,并構建響應報文,以同樣的方式從網絡到達源主機。

最后你將看到你想要的谷歌搜索頁面:?

整體上我們自頂而下的描述了一個請求到達目的地的完整過程,旨在宏觀上建立完整的框架體系,相關細節之處可以參照前兩篇文章。

瀏覽器輸入網址到響應的整個過程-http 請求到響應詳解

這一過程詳細來講涉及到計算機的整個網絡架構系統,從應用層到物理層都可以講述。本講聚焦應用層發生了什么事。

在應用層,瀏覽器首先需要獲得將要訪問的網站的 IP 地址,因此首先需要進行域名解析,從網址提取出域名,然后進行 DNS 請求(UDP)。首先在本機的域名緩存中查詢,若查詢不到再到直連的路由器中查詢,還是沒有則到直連的網絡服務提供商的 DNS 服務器查詢,查詢不到則會有兩種方式繼續查詢一種是遞歸方式,即一級一級的往上一級 DNS 服務器查詢,直到根 DNS 服務器,此時基本能查到;?
示例:?
主機——>本地 DNS 服務器——>權限 DNS 服務器——>頂級 DNS 服務器——>根服務器。其結果是要么能查到要么報錯。?
一種是非遞歸方式,即直接找根 DNS 服務器,然后由它指示要找哪一個根服務器的下一級 DNS 服務器。

當查到需要的 IP 地址后,地址中沒有端口的話則使用 HTTP 協議的默認短號,進行 TCP 的三次握手,與對端主機連接。?
成功連接后,則可以向對端主機發送 HTTP 請求,成功收到響應則進行斷連,即 TCP 的四次揮手。若響應是重定向,則需要再一次發送 HTTP 請求到重定向的地址(是否需要重新 DNS 解析?)

最后瀏覽器解析服務器的響應內容,并顯示再瀏覽器頁面。

參考鏈接:

https://blog.csdn.net/lzghxjt/article/details/51458540
https://www.jianshu.com/p/aa97810e5fa4

在瀏覽器中輸入www.baidu.com后執行的全部過程

在瀏覽器中輸入www.baidu.com后執行的全部過程

?

1、客戶端瀏覽器通過DNS解析到www.baidu.com的IP地址220.181.27.48,通過這個IP地址找到客戶端到服務器的路徑。客戶端瀏覽器發起一個HTTP會話到220.161.27.48,然后通過TCP進行封裝數據包,輸入到網絡層。?
2、在客戶端的傳輸層,把HTTP會話請求分成報文段,添加源和目的端口,如服務器使用80端口監聽客戶端的請求,客戶端由系統隨機選擇一個端口如5000,與服務器進行交換,服務器把相應的請求返回給客戶端的5000端口。然后使用IP層的IP地址查找目的端。?
3、客戶端的網絡層不用關心應用層或者傳輸層的東西,主要做的是通過查找路由表確定如何到達服務器,期間可能經過多個路由器,這些都是由路由器來完成的工作,我不作過多的描述,無非就是通過查找路由表決定通過那個路徑到達服務器。?
4、客戶端的鏈路層,包通過鏈路層發送到路由器,通過鄰居協議查找給定IP地址的MAC地址,然后發送ARP請求查找目的地址,如果得到回應后就可以使用ARP的請求應答交換的IP數據包現在就可以傳輸了,然后發送IP數據包到達服務器的地址。


事件順序

(1) 瀏覽器獲取輸入的域名www.baidu.com?
(2) 瀏覽器向DNS請求解析www.baidu.com的IP地址?
(3) 域名系統DNS解析出百度服務器的IP地址?
(4) 瀏覽器與該服務器建立TCP連接(默認端口號80)?
(5) 瀏覽器發出HTTP請求,請求百度首頁?
(6) 服務器通過HTTP響應把首頁文件發送給瀏覽器?
(7) TCP連接釋放?
(8) 瀏覽器將首頁文件進行解析,并將Web頁顯示給用戶。


涉及到的協議?
(1) 應用層:HTTP(WWW訪問協議),DNS(域名解析服務)?
DNS解析域名為目的IP,通過IP找到服務器路徑,客戶端向服務器發起HTTP會話,然后通過運輸層TCP協議封裝數據包,在TCP協議基礎上進行傳輸

(2) 傳輸層:TCP(為HTTP提供可靠的數據傳輸),UDP(DNS使用UDP傳輸)?
HTTP會話會被分成報文段,添加源、目的端口;TCP協議進行主要工作

(3)網絡層:IP(IP數據數據包傳輸和路由選擇),?
為數據包選擇路由,IP協議進行主要工作

(4)數據鏈路層:ICMP(提供網絡傳輸過程中的差錯檢測),ARP(將本機的默認網關IP地址映射成物理MAC地址)?
相鄰結點的可靠傳輸,ARP協議將IP地址轉成MAC地址。

?

作為一個軟件開發者,你一定會對網絡應用如何工作有一個完整的層次化的認知,同樣這里也包括這些應用所用到的技術:像瀏覽器,HTTP,HTML,網絡服務器,需求處理等等。

本文將更深入的研究當你輸入一個網址的時候,后臺到底發生了一件件什么樣的事~

1. 首先嘛,你得在瀏覽器里輸入要網址:

?

2. 瀏覽器查找域名的IP地址

?

導航的第一步是通過訪問的域名找出其IP地址。DNS查找過程如下:

  • 瀏覽器緩存 –?瀏覽器會緩存DNS記錄一段時間。 有趣的是,操作系統沒有告訴瀏覽器儲存DNS記錄的時間,這樣不同瀏覽器會儲存個自固定的一個時間(2分鐘到30分鐘不等)。
  • 系統緩存?– 如果在瀏覽器緩存里沒有找到需要的記錄,瀏覽器會做一個系統調用(windows里是gethostbyname)。這樣便可獲得系統緩存中的記錄。
  • 路由器緩存?– 接著,前面的查詢請求發向路由器,它一般會有自己的DNS緩存。
  • ISP DNS 緩存?– 接下來要check的就是ISP緩存DNS的服務器。在這一般都能找到相應的緩存記錄。
  • 遞歸搜索?– 你的ISP的DNS服務器從跟域名服務器開始進行遞歸搜索,從.com頂級域名服務器到Facebook的域名服務器。一般DNS服務器的緩存中會有.com域名服務器中的域名,所以到頂級服務器的匹配過程不是那么必要了。

DNS遞歸查找如下圖所示:

?

DNS有一點令人擔憂,這就是像wikipedia.org 或者 facebook.com這樣的整個域名看上去只是對應一個單獨的IP地址。還好,有幾種方法可以消除這個瓶頸:

  • 循環 DNS?是DNS查找時返回多個IP時的解決方案。舉例來說,Facebook.com實際上就對應了四個IP地址。
  • 負載平衡器?是以一個特定IP地址進行偵聽并將網絡請求轉發到集群服務器上的硬件設備。 一些大型的站點一般都會使用這種昂貴的高性能負載平衡器。
  • 地理 DNS?根據用戶所處的地理位置,通過把域名映射到多個不同的IP地址提高可擴展性。這樣不同的服務器不能夠更新同步狀態,但映射靜態內容的話非常好。
  • Anycast?是一個IP地址映射多個物理主機的路由技術。 美中不足,Anycast與TCP協議適應的不是很好,所以很少應用在那些方案中。

大多數DNS服務器使用Anycast來獲得高效低延遲的DNS查找。

3. 瀏覽器給web服務器發送一個HTTP請求

?

因為像Facebook主頁這樣的動態頁面,打開后在瀏覽器緩存中很快甚至馬上就會過期,毫無疑問他們不能從中讀取。

所以,瀏覽器將把一下請求發送到Facebook所在的服務器:

GET http://facebook.com/ HTTP/1.1Accept: application/x-ms-application, image/jpeg, application/xaml+xml, [...]User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; [...]Accept-Encoding: gzip, deflateConnection: Keep-AliveHost: facebook.comCookie: datr=1265876274-[...]; locale=en_US; lsd=WW[...]; c_user=2101[...]

GET 這個請求定義了要讀取的URL: “http://facebook.com/”。 瀏覽器自身定義 (User-Agent?頭), 和它希望接受什么類型的相應 (Accept?and?Accept-Encoding頭).?Connection頭要求服務器為了后邊的請求不要關閉TCP連接。

請求中也包含瀏覽器存儲的該域名的cookies。可能你已經知道,在不同頁面請求當中,cookies是與跟蹤一個網站狀態相匹配的鍵值。這樣cookies會存儲登錄用戶名,服務器分配的密碼和一些用戶設置等。Cookies會以文本文檔形式存儲在客戶機里,每次請求時發送給服務器。

用來看原始HTTP請求及其相應的工具很多。作者比較喜歡使用fiddler,當然也有像FireBug這樣其他的工具。這些軟件在網站優化時會幫上很大忙。

除了獲取請求,還有一種是發送請求,它常在提交表單用到。發送請求通過URL傳遞其參數(e.g.: http://robozzle.com/puzzle.aspx?id=85)。發送請求在請求正文頭之后發送其參數。?
像“http://facebook.com/”中的斜杠是至關重要的。這種情況下,瀏覽器能安全的添加斜杠。而像“http: //example.com/folderOrFile”這樣的地址,因為瀏覽器不清楚folderOrFile到底是文件夾還是文件,所以不能自動添加 斜杠。這時,瀏覽器就不加斜杠直接訪問地址,服務器會響應一個重定向,結果造成一次不必要的握手。

4. facebook服務的永久重定向響應

?

圖中所示為Facebook服務器發回給瀏覽器的響應:

HTTP/1.1 301 Moved PermanentlyCache-Control: private, no-store, no-cache, must-revalidate, post-check=0,pre-check=0Expires: Sat, 01 Jan 2000 00:00:00 GMTLocation: http://www.facebook.com/P3P: CP="DSP LAW"Pragma: no-cacheSet-Cookie: made_write_conn=deleted; expires=Thu, 12-Feb-2009 05:09:50 GMT;path=/; domain=.facebook.com; httponlyContent-Type: text/html; charset=utf-8X-Cnection: closeDate: Fri, 12 Feb 2010 05:09:51 GMTContent-Length: 0

服務器給瀏覽器響應一個301永久重定向響應,這樣瀏覽器就會訪問“http://www.facebook.com/” 而非“http://facebook.com/”。

為什么服務器一定要重定向而不是直接發會用戶想看的網頁內容呢?這個問題有好多有意思的答案。

其中一個原因跟搜索引擎排名有 關。你看,如果一個頁面有兩個地址,就像http://www.igoro.com/ 和http://igoro.com/,搜索引擎會認為它們是兩個網站,結果造成每一個的搜索鏈接都減少從而降低排名。而搜索引擎知道301永久重定向是 什么意思,這樣就會把訪問帶www的和不帶www的地址歸到同一個網站排名下。

還有一個是用不同的地址會造成緩存友好性變差。當一個頁面有好幾個名字時,它可能會在緩存里出現好幾次。

5. 瀏覽器跟蹤重定向地址

?

現在,瀏覽器知道了“http://www.facebook.com/”才是要訪問的正確地址,所以它會發送另一個獲取請求:

GET http://www.facebook.com/ HTTP/1.1Accept: application/x-ms-application, image/jpeg, application/xaml+xml, [...]Accept-Language: en-USUser-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; [...]Accept-Encoding: gzip, deflateConnection: Keep-AliveCookie: lsd=XW[...]; c_user=21[...]; x-referer=[...]Host: www.facebook.com

頭信息以之前請求中的意義相同。

6. 服務器“處理”請求

?

服務器接收到獲取請求,然后處理并返回一個響應。

這表面上看起來是一個順向的任務,但其實這中間發生了很多有意思的東西- 就像作者博客這樣簡單的網站,何況像facebook那樣訪問量大的網站呢!

  • Web 服務器軟件?
    web服務器軟件(像IIS和阿帕奇)接收到HTTP請求,然后確定執行什么請求處理來處理它。請求處理就是一個能夠讀懂請求并且能生成HTML來進行響應的程序(像ASP.NET,PHP,RUBY...)。

    舉 個最簡單的例子,需求處理可以以映射網站地址結構的文件層次存儲。像http://example.com/folder1/page1.aspx這個地 址會映射/httpdocs/folder1/page1.aspx這個文件。web服務器軟件可以設置成為地址人工的對應請求處理,這樣 page1.aspx的發布地址就可以是http://example.com/folder1/page1。

  • 請求處理?
    請求處理閱讀請求及它的參數和cookies。它會讀取也可能更新一些數據,并講數據存儲在服務器上。然后,需求處理會生成一個HTML響應。

所 有動態網站都面臨一個有意思的難點 -如何存儲數據。小網站一半都會有一個SQL數據庫來存儲數據,存儲大量數據和/或訪問量大的網站不得不找一些辦法把數據庫分配到多臺機器上。解決方案 有:sharding (基于主鍵值講數據表分散到多個數據庫中),復制,利用弱語義一致性的簡化數據庫。

委 托工作給批處理是一個廉價保持數據更新的技術。舉例來講,Fackbook得及時更新新聞feed,但數據支持下的“你可能認識的人”功能只需要每晚更新 (作者猜測是這樣的,改功能如何完善不得而知)。批處理作業更新會導致一些不太重要的數據陳舊,但能使數據更新耕作更快更簡潔。

7. 服務器發回一個HTML響應

?

圖中為服務器生成并返回的響應:

HTTP/1.1 200 OKCache-Control: private, no-store, no-cache, must-revalidate, post-check=0,pre-check=0Expires: Sat, 01 Jan 2000 00:00:00 GMTP3P: CP="DSP LAW"Pragma: no-cacheContent-Encoding: gzipContent-Type: text/html; charset=utf-8X-Cnection: closeTransfer-Encoding: chunkedDate: Fri, 12 Feb 2010 09:05:55 GMT2b3Tn@[...]

整個響應大小為35kB,其中大部分在整理后以blob類型傳輸。

內容編碼頭告訴瀏覽器整個響應體用gzip算法進行壓縮。解壓blob塊后,你可以看到如下期望的HTML:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"lang="en" id="facebook" class=" no_js"><head><meta http-equiv="Content-type" content="text/html; charset=utf-8" /><meta http-equiv="Content-language" content="en" />...

關于壓縮,頭信息說明了是否緩存這個頁面,如果緩存的話如何去做,有什么cookies要去設置(前面這個響應里沒有這點)和隱私信息等等。

請注意報頭中把Content-type設置為“text/html”。報頭讓瀏覽器將該響應內容以HTML形式呈現,而不是以文件形式下載它。瀏覽器會根據報頭信息決定如何解釋該響應,不過同時也會考慮像URL擴展內容等其他因素。

8. 瀏覽器開始顯示HTML

在瀏覽器沒有完整接受全部HTML文檔時,它就已經開始顯示這個頁面了:

?

9. 瀏覽器發送獲取嵌入在HTML中的對象

?

在瀏覽器顯示HTML時,它會注意到需要獲取其他地址內容的標簽。這時,瀏覽器會發送一個獲取請求來重新獲得這些文件。

下面是幾個我們訪問facebook.com時需要重獲取的幾個URL:

  • 圖片?
    http://static.ak.fbcdn.net/rsrc.php/z12E0/hash/8q2anwu7.gif?
    http://static.ak.fbcdn.net/rsrc.php/zBS5C/hash/7hwy7at6.gif?
  • CSS 式樣表?
    http://static.ak.fbcdn.net/rsrc.php/z448Z/hash/2plh8s4n.css?
    http://static.ak.fbcdn.net/rsrc.php/zANE1/hash/cvtutcee.css?
  • JavaScript 文件?
    http://static.ak.fbcdn.net/rsrc.php/zEMOA/hash/c8yzb6ub.js?
    http://static.ak.fbcdn.net/rsrc.php/z6R9L/hash/cq2lgbs8.js?

這些地址都要經歷一個和HTML讀取類似的過程。所以瀏覽器會在DNS中查找這些域名,發送請求,重定向等等...

但 不像動態頁面那樣,靜態文件會允許瀏覽器對其進行緩存。有的文件可能會不需要與服務器通訊,而從緩存中直接讀取。服務器的響應中包含了靜態文件保存的期限 信息,所以瀏覽器知道要把它們緩存多長時間。還有,每個響應都可能包含像版本號一樣工作的ETag頭(被請求變量的實體值),如果瀏覽器觀察到文件的版本 ETag信息已經存在,就馬上停止這個文件的傳輸。

試著猜猜看“fbcdn.net”在地址中代表什么?聰明的答案是"Facebook內容分發網絡"。Facebook利用內容分發網絡(CDN)分發像圖片,CSS表和JavaScript文件這些靜態文件。所以,這些文件會在全球很多CDN的數據中心中留下備份。

靜態內容往往代表站點的帶寬大小,也能通過CDN輕松的復制。通常網站會使用第三方的CDN。例如,Facebook的靜態文件由最大的CDN提供商Akamai來托管。

舉例來講,當你試著ping static.ak.fbcdn.net的時候,可能會從某個akamai.net服務器上獲得響應。有意思的是,當你同樣再ping一次的時候,響應的服務器可能就不一樣,這說明幕后的負載平衡開始起作用了。

10. 瀏覽器發送異步(AJAX)請求

?

在Web 2.0偉大精神的指引下,頁面顯示完成后客戶端仍與服務器端保持著聯系。

以 Facebook聊天功能為例,它會持續與服務器保持聯系來及時更新你那些亮亮灰灰的好友狀態。為了更新這些頭像亮著的好友狀態,在瀏覽器中執行的 JavaScript代碼會給服務器發送異步請求。這個異步請求發送給特定的地址,它是一個按照程式構造的獲取或發送請求。還是在Facebook這個例 子中,客戶端發送給http://www.facebook.com/ajax/chat/buddy_list.php一個發布請求來獲取你好友里哪個 在線的狀態信息。

提起這個模式,就必須要講講"AJAX"-- “異步JavaScript 和 XML”,雖然服務器為什么用XML格式來進行響應也沒有個一清二白的原因。再舉個例子吧,對于異步請求,Facebook會返回一些JavaScript的代碼片段。

除了其他,fiddler這個工具能夠讓你看到瀏覽器發送的異步請求。事實上,你不僅可以被動的做為這些請求的看客,還能主動出擊修改和重新發送它們。AJAX請求這么容易被蒙,可著實讓那些計分的在線游戲開發者們郁悶的了。(當然,可別那樣騙人家~)

Facebook聊天功能提供了關于AJAX一個有意思的問題案例:把數據從服務器端推送到客戶端。因為HTTP是一個請求-響應協議,所以聊天服務器不能把新消息發給客戶。取而代之的是客戶端不得不隔幾秒就輪詢下服務器端看自己有沒有新消息。

這些情況發生時長輪詢是個減輕服務器負載挺有趣的技術。如果當被輪詢時服務器沒有新消息,它就不理這個客戶端。而當尚未超時的情況下收到了該客戶的新消息,服務器就會找到未完成的請求,把新消息做為響應返回給客戶端。

?

基于Web的HTTP請求/響應生命周期的關鍵點

路由
建立一個復雜將URL映射到函數的路由器。

函數執行
函數應該通過異步的方式執行,一旦函數執行完成,就應該執行一個回調函數。

響應/渲染
一旦執行完成,就應該通過異步的方式執行渲染。

序列化
在執行、渲染階段獲取和使用過的所有數據都應該成為服務器端響應的一部分。

反序列化
任何對象和數據都需要在客戶端重新創建,因為當用戶和應用進行交互時,客戶端運行時需要用到這些數據。

添加事件
應綁定事件處理器,以便應用可交互。
?

#目錄

##1、基本概念

* 什么是CGI?

* 部分專業術語解釋

* 圖解靜態請求和動態請求

* php組成

##2、PHP的生命周期

##3、PHP底層工作原理

###基本概念

####1.什么是CGI?

1)什么是cgi呢?

CGI是common gateway interface的縮寫,譯作通用網關接口,但很不幸,我們無法見名知意,我們知道,web服務器所處理的內容都是靜態的,要想處理動態內容,需要依賴于web應用程序,如php、jsp、python、perl等。但是web server如何將動態的請求傳遞給這些應用程序?它所依賴的就是cgi協議。沒錯,是協議,也就是web server和web應用程序交流時的規范。換句話說,通過cgi協議,再結合已搭建好的web應用程序,就可以讓web server也能"處理"動態請求,你肯定知道處理兩字為什么要加上雙引號。

簡單版的cgi工作方式如下:

![](http://images2017.cnblogs.com/blog/733013/201710/733013-20171004193828411-28489808.png)

***

####2.部分專業術語解釋

#####CGI:

**概念**:它是一種協議。通過cgi協議,web server可以將動態請求和相關參數發送給專門處理動態內容的應用程序。

**工作原理**:CGI方式在遇到連接請求(用戶請求)先要創建cgi的子進程,激活一個CGI進程,然后處理請求,處理完后結束這個子進程。這就是fork-and-execute模式。所以用cgi方式的服務器有多少連接請求就會有多少cgi子進程,子進程反復加載是cgi性能低下的主要原因。當用戶請求數量非常多時,會大量擠占系統的資源如內存,CPU時間等,造成效能低下。

***

#####2)FASTCGI:

**概念**:也是一種協議,只不過是cgi的優化版。cgi的性能較爛,fastcgi則在其基礎上進行了改進。FastCGI技術目前支持語言有:C/C++、Java、Perl、Tcl、Python、SmallTalk、Ruby等

**工作原理**:fast-cgi是cgi的升級版本,是一個進程可以處理多個請求,和上面的cgi協議完全不一樣,cgi是一個進程只能處理一個請求,這樣就會導致大量的cgi程序,因此會給服務器帶來負擔。FastCGI像是一個常駐型的CGI,它可以一直執行著,只要激活后,不會每次都要花費時間去fork一次

***

#####3)PHP-CGI:

**概念**:PHP-CGI是PHP自帶的FastCGI管理器。

**工作原理**:fastcgi是一種協議,而php-cgi實現了這種協議。不過這種實現比較爛。它是單進程的,一個進程處理一個請求,處理結束后進程就銷毀。

#####4)PHP-FPM:

**概念**:PHP-FPM是一個PHP FastCGI管理器,是只用于PHP的是對php-cgi的改進版,它直接管理多個php-cgi進程/線程。也就是說,php-fpm是php-cgi的進程管理器因此它也算是fastcgi協議的實現。

**工作原理**:php-fpm會開啟多個php-cgi程序,并且php-fpm常駐內存,每次web serve服務器發送連接過來的時候,php-fpm將連接信息分配給下面其中的一個子程序php-cgi進行處理,處理完畢這個php-cgi并不會關閉,而是繼續等待下一個連接(一個進程至少服務上萬次請求才退出),這也是fast-cgi加速的原理,但是由于php-fpm是多進程的,而一個php-cgi基本消耗7-25M內存,因此如果連接過多就會導致內存消耗過大,引發一些問題,例如nginx里的502錯誤。

**為什么一定要退出?**因為擔心RINIT->RSHUTDOWN循環,有哪個代碼寫的不好,變量一直沒釋放,內存泄露GC又回收不了。php-fpm里的pm.max_requests配置就是設置RINT循環多少次,退出進程。

**同時php-fpm還附帶一些其他的功能**:例如平滑過渡配置更改,普通的php-cgi在每次更改配置后,需要重新啟動才能初始化新的配置,而php-fpm是不需要,php-fpm分將新的連接發送給新的子程序php-cgi,這個時候加載的是新的配置,而原先**正在運行**的php-cgi還是使用的原先的配置,等到**這個連接后下一次連接**的時候會使用新的配置初始化,這就是**平滑過渡**。

***

#####5)CGI進程/線程

**概念**:在php上,就是php-cgi進程/線程。專門用于接收web server的動態請求,**調用并初始化zend虛擬機。**

***

#####6)CGI腳本:

**概念**:被執行的php源代碼文件。

***

#####7)ZEND虛擬機:

**概念**:對php文件做詞法分析、語法分析、編譯成opcode,并執行。最后關閉zend虛擬機。

**CGI進程/線程和ZEND虛擬機的關系**:cgi進程調用并初始化zend虛擬機的各種環境。

***

#####8)常見的SAPI

SAPI提供了一個和外部通信的接口,常見的SAPI有:cgi 、fast-cgi、cli、isapi、apache 模塊的 DLL

***

####3.圖解靜態請求和動態請求

![](https://img-blog.csdn.net/20170404133415927?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYmVsZW5feHVl/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)

***

![](https://img-blog.csdn.net/20170404151830456?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYmVsZW5feHVl/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)

###4.PHP的組成

**PHP總共有三個模塊:內核、Zend引擎、以及擴展層。**

**PHP內核**用來處理請求、文件流、錯誤處理等相關操作。

**Zend引擎**用以將源文件轉換成機器語言,然后在虛擬機上運行它。

**擴展層**是一組函數、類庫和流,PHP使用它們來執行一些特定的操作。

比如,我們需要mysql擴展來連接MySQL數據庫; 當ZE執行程序時可能會需要連接若干擴展,這時ZE將控制權交給擴展,等處理完特定任務后再返還;最后,ZE將程序運行結果返回給PHP內核,它再將結果傳送給SAPI層,最終輸出到瀏覽器上。

####5、WEB-SERVER和PHP-CGI的交互模式

web server和php-cgi有3種交互模式。

* **cgi模式**:httpd接收到一個動態請求就fork一個cgi進程,cgi進程返回結果給httpd進程后自我銷毀。

* **動態模塊模式**:將php-cgi的模塊編譯進httpd(Apache的方法)。在httpd啟動時會加載模塊,加載時也將對應的模塊激活,php-cgi也就啟動了。(注:糾正一個小小錯誤,很多人以為動態編譯的模塊是可以在需要的時候隨時加載調用,不需要的時候它們就停止了,實際上不是這樣的。和靜態編譯的模塊一樣,動態加載的模塊在被加載時就被加入到激活鏈表中,無論是否使用它,它都已經運行在apache httpd的內部)

* **php-fpm模式**:使用php-fpm管理php-cgi,此時httpd不再控制php-cgi進程的啟動。可以將php-fpm獨立運行在非web服務器上,實現所謂的動靜分離。

實際上,借助模塊mod_fastcgi還可以實現fastcgi模式。同cgi一樣,管理模式的先天缺陷決定了這并不是一種好方法。

###

###2、PHP的生命周期

####流程圖解:

![](https://upload-images.jianshu.io/upload_images/1270516-92c40cb1fa4f3fc2.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/534)

####PHP開始和結束階段:

![](https://img-blog.csdn.net/20161020222959082?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)

由上面的圖,我們能知道,SAPI運行PHP都經過下面幾個階段

*? 模塊初始化階段(Module init):即調用每個拓展源碼中的的PHP\_MINIT\_FUNCTION中的方法初始化模塊,進行一些模塊所需變量的申請,內存分配等。

* 請求初始化階段(Request init):即接受到客戶端的請求后調用每個拓展的PHP\_RINIT\_FUNCTION中的方法,初始化PHP腳本的執行環境。

* 執行PHP腳本

?

* 請求結束(Request Shutdown):這時候調用每個拓展的PHP\_RSHUTDOWN\_FUNCTION方法清理請求現場,并且ZE開始回收變量和內存。

* 關閉模塊(Module shutdown): Web服務器退出或者命令行腳本執行完畢退出會調用拓展源碼中的PHP\_MSHUTDOWN\_FUNCTION 方法。

####我們具體來看看每一步都做了什么?

1)**模塊初始化階段**:

在整個SAPI生命周期內(例如Apache啟動以后的整個生命周期內或者命令行程序整個執行過程中), 該過程只進行一次,第一步的操作在任何請求到達之前就發生了。

PHP調用各個擴展的MINIT方法,從而使這些擴展切換到可用狀態。我們可以看看php.ini文件里打開了哪些擴展,這些擴展會在這個階段進行”模塊初始化“。 MINIT的意思是“模塊初始化”。各個模塊都定義了一組函數、類庫等用以處理其他請求。

2) **請求初始化**:

當一個頁面請求發生時,SAPI層將控制權交給PHP層。于是PHP設置了用于回復本次請求所需的環境變量。同時,它還建立一個變量表,用來存放執行過程 中產生的變量名和值。PHP調用各個模塊的RINIT方法,即“請求初始化”。一個經典的例子是Session模塊的RINIT,如果在php.ini中 啟用了Session模塊,那在調用該模塊的RINIT時就會初始化$_SESSION變量,并將相關內容讀入;RINIT方法可以看作是一個準備過程, 在程序執行之間就會自動啟動。

3)**執行腳本**

一旦請求被初始化了,ZE開始接管控制權,將PHP腳本翻譯成符號(OPcode),最終形成操作碼并逐步運行之。如任一操作碼需要調用擴展的函數,ZE將會把參數綁定到該函數,并且臨時交出控制權直到函數運行結束。

1. scanner

?

? ? 將PHP代碼轉換為Tokens,詳見代碼Zend/zend\_language\_scanner.l。

?

2. parser

?

? ? 將Tokens轉換成表達式,詳見代碼Zend/zend\_language\_parser.y。

?

3. compile

?

? ? 將表達式編譯成opcode。opcode存放在op\_array中。

?

4. execute

?

? ? Zend Engine調用zend\_execute來執行op\_array,輸出結果。

4)**關閉第一步(請求關閉)**

如同PHP啟動一樣,PHP的關閉也分兩步。一旦頁面執行完畢(無論是執行到了文件末尾還是用exit或die函數中止),PHP就會啟動清理程序。它會按順序調用各個模塊的RSHUTDOWN方法。 RSHUTDOWN用以清除程序運行時產生的符號表,也就是對每個變量調用unset函數。

5)**關閉第二步(模塊關閉)**

所有的請求都已處理完畢,SAPI也準備關閉了,PHP開始執行第二步:PHP調用每個擴展的MSHUTDOWN方法,這是各個模塊最后一次釋放內存的機會。

**這樣,整個PHP生命周期就結束了。要注意的是,只有在服務器沒有請求的情況下才會執行“啟動第一步”和“關閉第二步”。**

###3、PHP底層工作原理

![](http://images.cnblogs.com/cnblogs_com/phphuaibei/201109/201109131718528130.png)

**從圖上可以看出,php從下到上是一個4層體系**

**①Zend引擎**

Zend整體用純c實現,是php的內核部分,它將php代碼翻譯(詞法、語法解析等一系列編譯過程)為可執行opcode的處理并實現相應的處理方法、實現了基本的數據結構(如hashtable、oo)、內存分配及管理、提供了相應的api方法供外部調用,是一切的核心,所有的外圍功能均圍繞zend實現。

**②Extensions**

圍繞著zend引擎,extensions通過組件式的方式提供各種基礎服務,我們常見的各種內置函數(如array系列)、標準庫等都是通過extension來實現,用戶也可以根據需要實現自己的extension以達到功能擴展、性能優化等目的(如貼吧正在使用的php中間層、富文本解析就是extension的典型應用)。

**③Sapi**

Sapi全稱是Server Application Programming Interface,也就是服務端應用編程接口,sapi通過一系列鉤子函數,使得php可以和外圍交互數據,這是php非常優雅和成功的一個設計,通過sapi成功的將php本身和上層應用解耦隔離,php可以不再考慮如何針對不同應用進行兼容,而應用本身也可以針對自己的特點實現不同的處理方式。后面將在sapi章節中介紹

**④上層應用**

這就是我們平時編寫的php程序,通過不同的sapi方式得到各種各樣的應用模式,如通過webserver實現web應用、在命令行下以腳本方式運行等等。

**構架思想:**

引擎(Zend)+組件(ext)的模式降低內部耦合

中間層(sapi)隔絕web server和php

總結

以上是生活随笔為你收集整理的OSI七层网络模型 TCP/IP五层网络模型的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

91精品国产成 | 丁香六月久久综合狠狠色 | 天天天天天天操 | 日本爱爱片| 欧美人zozo| 看污网站 | 五月婷久 | 天天操天天干天天操天天干 | 免费视频97 | 成人av日韩 | 日韩三级视频在线观看 | 中文字幕第 | 黄色tv视频| 免费观看91视频大全 | av综合在线观看 | 韩国在线视频一区 | 国内精品一区二区 | 欧美一级特黄高清视频 | 丁香激情网 | 91中文字幕在线播放 | av电影免费 | 国产亚洲va综合人人澡精品 | 日韩欧美高清在线观看 | 天天干天天做 | 国产精品综合在线观看 | 一区二区三区久久 | 久久久精品国产一区二区电影四季 | 国产精品无 | 国产免费成人 | 又黄又刺激| 黄网站色欧美视频 | 色丁香综合 | 99国内精品 | 成人久久久电影 | 成人av一区二区三区 | 又黄又刺激又爽的视频 | 亚洲理论在线观看电影 | 亚洲国内在线 | 久久久久 免费视频 | 亚洲欧美在线视频免费 | 亚洲精品久久久蜜桃直播 | 中文字幕高清在线 | 国产三级久久久 | 亚洲黄色软件 | 久草在线免费新视频 | 午夜视频一区二区三区 | 欧美一级日韩三级 | 国产视频精品免费播放 | 国产精品久久久久久一区二区三区 | 国产精品久久久久久久久久久久午夜 | 麻豆久久久久久久 | 国产1区2| 91亚洲欧美激情 | 一区二区在线不卡 | 久久婷婷亚洲 | 久久久久综合精品福利啪啪 | 亚洲精品国产欧美在线观看 | 午夜精品一区二区国产 | 99热手机在线观看 | 伊人va| www色,com | 91视频88av| 欧美一区免费在线观看 | 99热九九这里只有精品10 | 四虎4hu永久免费 | 麻豆免费在线播放 | 免费看三级网站 | 天堂网av 在线 | 国产69精品久久久久久 | 三上悠亚一区二区在线观看 | 午夜在线免费视频 | 超碰日韩在线 | 久草精品视频在线看网站免费 | 综合网天天| 伊人久久精品久久亚洲一区 | 国模一二三区 | 精品自拍av | 免费www视频 | 99久久www免费| 日韩在线视频网 | 久久99精品久久只有精品 | 欧美 国产 视频 | 中文字幕影片免费在线观看 | 精品人人人| 色婷婷激婷婷情综天天 | 国产精品久久久久久久久久99 | 婷婷视频在线观看 | 久久综合久久综合这里只有精品 | 韩国av免费看| 亚洲精品www久久久 www国产精品com | 免费日韩一区 | 免费成人av电影 | 免费久久网站 | 亚洲久草网 | 91.精品高清在线观看 | 亚洲va欧美va人人爽春色影视 | 悠悠av资源片 | 日韩婷婷| 国产成人精品午夜在线播放 | 亚洲综合欧美日韩狠狠色 | 黄色成人免费电影 | 天天爽天天碰狠狠添 | 久久美女免费视频 | 一区二区三区电影 | 国产我不卡 | 99精品在线免费在线观看 | 国产原创在线 | 天天操夜夜操国产精品 | 中文字幕久久精品亚洲乱码 | 欧美在线1 | www.夜夜干.com| av午夜电影| 国产精品2018| 国产精品18p| 九九久久视频 | 青青草视频精品 | 日韩一级成人av | 蜜臀久久99精品久久久无需会员 | 国产精品色婷婷 | 久久女同性恋中文字幕 | 青青河边草观看完整版高清 | 丁香花在线观看免费完整版视频 | av在线播放一区二区三区 | 最新在线你懂的 | 亚洲v欧美v国产v在线观看 | av在线播放亚洲 | 国产一级一片免费播放放 | 免费看特级毛片 | 播五月综合| 天天玩夜夜操 | 瑞典xxxx性hd极品 | 97超碰人人澡人人 | 亚洲精品在线观看中文字幕 | 久久久久国产精品视频 | 久久久影院 | 国产欧美精品xxxx另类 | 91九色性视频 | 天天性天天草 | 最新真实国产在线视频 | 色wwww| 91超碰在线播放 | 91av视频在线免费观看 | 五月天亚洲婷婷 | 99视频精品全部免费 在线 | 国产成人精品午夜在线播放 | 91丨九色丨国产女 | 97在线免费观看视频 | 欧美综合在线视频 | 欧美va天堂在线电影 | 中文字幕在线高清 | 五月天激情综合网 | 亚洲毛片在线观看. | 天天舔夜夜操 | 久久视频在线观看 | 精品久久久久久久久中文字幕 | 国产精品免费久久久 | 天天操天天爱天天干 | 日韩欧美91 | 国产色中涩 | 国产精品福利在线观看 | 久久精品视频在线观看免费 | 人人干人人搞 | 高清av免费看 | 色中色综合 | 999久久久国产精品 高清av免费观看 | 免费在线黄网 | 91色国产在线 | 日韩久久精品一区二区三区 | 免费一级黄色 | 99久久精品免费看 | 欧美日一级片 | 黄色国产在线观看 | 99精品久久99久久久久 | 黄色激情网址 | 国产免费观看高清完整版 | 欧美乱码精品一区二区 | 久久综合一本 | 亚洲精品黄色 | 久久精品一级片 | 亚洲欧美精品一区 | 麻豆一区在线观看 | 日韩a在线 | 在线观看国产永久免费视频 | 国内揄拍国产精品 | 天天操天天射天天操 | 六月丁香婷 | 有码一区二区三区 | 五月综合久久 | 婷婷综合导航 | 国产91勾搭技师精品 | 在线观看的av | 日韩二区三区在线观看 | 国产日产精品一区二区三区四区的观看方式 | 久久久99精品免费观看app | 黄色av观看| 免费av看片 | 婷婷五月在线视频 | 成年人在线观看 | av中文天堂在线 | 亚洲视频在线免费看 | 国产资源| 超碰在线公开免费 | 国产中文视频 | 99九九99九九九视频精品 | 日韩av不卡在线播放 | 天天插伊人 | 午夜久久福利影院 | 国产一区在线视频观看 | 色综合久久久久久久 | 亚洲免费在线观看视频 | 婷婷精品进入 | 天天干夜夜夜操天 | 欧美成人精品三级在线观看播放 | 人人爽人人爽人人爽 | 国产欧美在线一区二区三区 | 成人一区二区在线观看 | 国产在线观看一区 | 亚洲婷婷伊人 | 精品一区免费 | 国产精品不卡一区 | 成年人看片网站 | 婷婷中文字幕在线观看 | 日韩三级视频在线观看 | 九九爱免费视频 | 中文在线字幕免 | 久久久久在线观看 | www.黄色片网站 | 国产亚洲婷婷免费 | 免费福利小视频 | 国色天香在线观看 | 亚洲精品男人天堂 | 亚洲综合色婷婷 | 81国产精品久久久久久久久久 | 午夜丁香视频在线观看 | 日韩高清毛片 | 国产在线精品区 | 亚洲精品一区二区三区四区高清 | 狠狠躁18三区二区一区ai明星 | 一区二区不卡高清 | 亚洲最大成人网4388xx | 日韩免费高清在线观看 | www.久久91 | 免费看一级片 | 在线一区电影 | 亚洲精品动漫成人3d无尽在线 | 久久免费视频在线观看6 | 91在线日韩 | www.com.日本一级| 国产精品系列在线 | 中文字幕在线观看91 | 97在线观看免费高清完整版在线观看 | 成人在线黄色电影 | 51久久成人国产精品麻豆 | 91视频在线免费下载 | 精品在线免费观看 | 天天爱天天操天天射 | 国产一区在线免费观看视频 | 国产视频一二三 | 国产美女黄网站免费 | 亚洲最新合集 | 亚洲精品久久在线 | 欧美网站黄色 | 欧美一级电影 | av大片免费在线观看 | av免费看电影 | 九九热在线播放 | 免费视频99 | 91网址在线看| 天堂av在线网 | 久久亚洲影视 | 欧美一级免费黄色片 | 中文字幕美女免费在线 | 69精品人人人人 | 色资源在线 | 97精品在线| 色综合人人 | 国产aaa免费视频 | 国产一区在线不卡 | 欧美日韩三级 | 米奇影视7777 | 有码视频在线观看 | 91精品国产99久久久久 | 久久深夜 | 国产超碰在线观看 | 国产精品剧情 | 日韩精品在线看 | 亚洲欧美少妇 | www.天天射| 麻豆国产视频 | 99热国产精品 | 日p视频在线观看 | 欧美日韩一区二区免费在线观看 | 国产不卡精品视频 | 日本视频久久久 | 国产精品久久久久久久久久直播 | 国产精品24小时在线观看 | 天天天操天天天干 | 又黄又爽又刺激视频 | 免费观看日韩 | 91日韩在线 | 最近中文国产在线视频 | 日韩.com| 精品国产综合区久久久久久 | 久久精品中文字幕少妇 | 国产高清在线不卡 | 日韩高清精品一区二区 | 国产成人精品在线观看 | 91精品影视 | 狠狠黄 | 天天干夜夜夜操天 | 中文免费在线观看 | 日韩不卡高清 | 中文字幕免费播放 | 欧美大荫蒂xxx | 成人在线免费视频 | 亚洲精品久久在线 | 国产精品一区电影 | 在线综合 亚洲 欧美在线视频 | 激情欧美一区二区免费视频 | 狠狠天天 | 黄色免费视频在线观看 | 天天操狠狠操网站 | 色.www| 精品91视频 | 免费视频一二三区 | 91精品欧美一区二区三区 | 蜜臀久久99精品久久久无需会员 | 日韩免费视频在线观看 | 丁香九月婷婷 | 超碰成人免费电影 | 免费看在线看www777 | 久热只有精品 | 国产精品视频一二三 | 国语麻豆 | 黄色大片网 | 亚洲视频在线播放 | 97视频人人澡人人爽 | 婷婷六月天综合 | 婷婷丁香国产 | 国产成人精品女人久久久 | 亚洲精品自在在线观看 | 丁香五月网久久综合 | 国产99久久久久 | 操高跟美女 | 天天干天天干天天色 | 免费人成网 | 国产精品二区在线观看 | 成人日韩av| 成人一区二区在线观看 | 成人免费91| 婷婷综合伊人 | 国产电影黄色av | 国产探花在线看 | 一区二区三区在线观看免费 | 色吊丝在线永久观看最新版本 | 久久综合免费视频影院 | 精品国产伦一区二区三区观看体验 | 国产午夜不卡 | 中文字幕在线观看视频免费 | 日本一区二区三区免费看 | 国产精彩视频 | 黄色成人av | 成年人在线观看视频免费 | 婷婷色五| 在线国产中文字幕 | 国产91精品在线播放 | 欧美在线观看视频 | 精油按摩av| 欧美日韩不卡一区二区 | 国产精品入口久久 | 韩国精品在线观看 | 天天色棕合合合合合合 | 91黄色小网站 | 久久乱码卡一卡2卡三卡四 五月婷婷久 | 亚洲精品在线网站 | 午夜美女福利 | 在线观看免费色 | 99久久婷婷国产精品综合 | 国产一区二区精品 | 精品91在线 | 欧美日韩久久不卡 | 免费在线观看成人小视频 | 亚洲第一成网站 | 亚洲a在线观看 | 国产黄色片一级三级 | 久久国产精品视频免费看 | 国产成人一区二区三区 | 精品在线观看国产 | 中文字幕乱码一区二区 | 天天射天天舔天天干 | 碰碰影院 | 久久99在线视频 | 99精品在线观看 | 三级av网 | 天天操天天射天天爱 | 在线观看黄网 | 97视频播放 | 中文字幕久久精品亚洲乱码 | 国产黄色看片 | 亚洲国产视频网站 | 在线免费观看黄色小说 | 日韩中文免费视频 | 久久人网 | 婷婷综合视频 | 中文字幕人成乱码在线观看 | 国产aa精品 | 日韩免费在线视频观看 | 四虎影视欧美 | 亚洲精品国偷拍自产在线观看 | 91插插影库 | 欧美一区二区精品在线 | 久久99热这里只有精品 | 黄色成年 | 日韩欧美综合精品 | 国产精品永久在线 | 国产中文字幕在线看 | 久久国产精品小视频 | 久草视频一区 | 日韩91av | 天天爱天天操天天干 | 婷婷久久网| 久久国产精品色婷婷 | 9ⅰ精品久久久久久久久中文字幕 | 日韩在线高清免费视频 | 波多野结衣在线中文字幕 | 十八岁以下禁止观看的1000个网站 | 在线免费观看涩涩 | 久久精品久久精品久久39 | 天天操天天操天天操 | 天天干天天操天天入 | 亚洲尺码电影av久久 | 国产精品久久久久久久久久久久久久 | 久久久蜜桃一区二区 | 日本一区二区高清不卡 | 久久精品中文视频 | 免费av观看网站 | 亚洲国产欧洲综合997久久, | 国产精品嫩草影院99网站 | 91色综合| 18国产精品白浆在线观看免费 | 久久精品一二区 | 国产日韩欧美网站 | 日韩在线一级 | 中文字幕一区二区三区四区视频 | 人人看看人人 | 天天激情 | 日本乱码在线 | 国产一线二线三线性视频 | 亚洲综合色播 | 伊人五月在线 | 夜夜狠狠 | 日韩免费在线观看 | 成人免费观看视频大全 | 欧美日韩视频一区二区 | 手机在线欧美 | 中文字幕在线播放日韩 | 日韩欧美精品在线视频 | 国产成人a v电影 | 91精品一区二区在线观看 | 日韩免费一二三区 | 久久99深爱久久99精品 | 香蕉视频免费在线播放 | 又爽又黄又刺激的视频 | 91九色视频在线观看 | 综合网天天色 | 色操插 | 成年人在线观看网站 | 亚洲 精品在线视频 | 超碰免费久久 | h网站免费在线观看 | 在线观看亚洲电影 | 丰满少妇在线 | 国产福利精品在线观看 | 青青久草在线视频 | 91系列在线观看 | 久久精品香蕉 | 久久久久视 | 国产美女被啪进深处喷白浆视频 | 欧美小视频在线 | 国产亲近乱来精品 | 黄色免费视频在线观看 | 97成人免费 | 在线观看爱爱视频 | 国产精品久久久久婷婷 | 91成人免费在线 | 成人黄在线观看 | 亚洲人人av| 国产精品1区2区3区在线观看 | 一区二区三区中文字幕在线观看 | 麻豆免费视频 | 在线免费观看成人 | 欧洲av不卡 | 精品久久久久久电影 | 欧美日韩国产mv | 国产精品va视频 | 99久久精品国产网站 | 欧美性精品 | 免费精品视频在线观看 | 欧美一区二区在线刺激视频 | 中日韩欧美精彩视频 | 欧美久久久久久久久久 | 九九九在线观看 | 成人在线视频免费 | 亚洲自拍偷拍色图 | 久久精品高清 | 婷婷激情在线观看 | 99视频在线免费 | 日本免费久久高清视频 | 91视频高清 | 在线观看爱爱视频 | 国产一区二区不卡在线 | 探花在线观看 | 久久国产欧美日韩精品 | 午夜久久久久久久久 | 麻豆国产视频下载 | 四虎亚洲精品 | 精品久久久久久久久中文字幕 | 日韩簧片在线观看 | 亚洲视频 中文字幕 | 国产精品一区二区免费视频 | 欧美国产在线看 | 五月综合激情网 | 亚洲丁香日韩 | 黄色三级网站 | 国产一级片一区二区三区 | 国产视频一区在线播放 | 欧美日韩国产二区 | 麻豆91在线看 | 成年人天堂com | 国内精品视频久久 | 久久精品视频网站 | 欧美激情精品久久久久 | 福利一区视频 | 五月天久久综合 | japanesexxxhd奶水 91在线精品一区二区 | 一级黄色电影网站 | 国产在线一区观看 | 亚洲成人资源 | 亚洲日韩欧美一区二区在线 | 99久久精品免费一区 | 婷婷视频导航 | 免费a网址 | 欧美日韩三级 | 日韩中文字幕在线观看 | 成人免费观看大片 | 久久理论电影网 | 99国产精品视频免费观看一公开 | 99久久日韩精品视频免费在线观看 | 玖玖在线免费视频 | 免费色黄 | 婷婷国产v亚洲v欧美久久 | 欧美日韩性生活 | 色五月色开心色婷婷色丁香 | 97国产在线 | 久久一视频| 999成人精品 | 久久9999久久免费精品国产 | 国产va精品免费观看 | 狠狠色免费 | 免费在线观看亚洲视频 | 91干干干 | 日韩在观看线 | 亚洲综合狠狠干 | 免费看黄色毛片 | 色婷婷福利 | 在线高清一区 | 在线观看黄色的网站 | 久久精品久久综合 | 中文字幕日韩伦理 | 在线观看中文字幕视频 | 91av久久| 麻豆国产在线视频 | 亚洲天堂精品视频 | 国产高清第一页 | 五月天激情视频在线观看 | 日韩在线精品 | 91在线超碰| 国内精品福利视频 | 五月婷婷久久综合 | 亚洲狠狠操 | 99精品国产兔费观看久久99 | 91在线区 | 91亚洲精品久久久蜜桃借种 | 成人在线视频免费观看 | 91九色网站| 激情网站五月天 | 国产91精品在线播放 | 久久a视频 | 免费福利在线视频 | 日韩av手机在线观看 | 日韩欧美极品 | jizz欧美性9| 国产人成免费视频 | 亚洲精品动漫成人3d无尽在线 | 欧美一级黄大片 | 天堂在线一区二区三区 | 亚洲一区久久 | 中文字幕在线视频一区 | 久久不卡av | 日韩欧美xxxx | 亚洲 欧洲 国产 日本 综合 | 91免费视频国产 | 在线成人高清电影 | 欧美在线一二 | 天堂va在线高清一区 | 欧美,日韩| 91精选在线| 最近中文字幕mv | 中文字幕电影在线 | 日日弄天天弄美女bbbb | 欧美激情亚洲综合 | 日韩欧美综合精品 | 日韩免费播放 | 国产精品视频免费看 | 狠狠色丁香婷婷综合视频 | 在线观看国产一区 | 韩日精品在线 | 在线免费中文字幕 | 四虎国产永久在线精品 | 91麻豆精品 | 久久久久久久久久久电影 | 国产第一页在线观看 | 中文字幕在线视频一区 | 天天久久夜夜 | 人人草在线视频 | 日韩欧美一区二区在线播放 | 午夜美女网站 | 国产视频一区二区在线观看 | 久久国产精品小视频 | 五月天亚洲激情 | www.狠狠色 | 国产精品久久久久久一区二区三区 | 久久久久久久久久伊人 | 五月天高清欧美mv | 开心综合网 | 果冻av在线 | 国产一级免费在线观看 | 中文字幕一区二区三区四区视频 | 日日夜夜噜噜噜 | 国产色网站 | 国产精品 日韩精品 | 一级黄色在线免费观看 | 成人免费看片98欧美 | 欧美小视频在线观看 | 久久伊人免费视频 | 国产成人精品一区一区一区 | 丁香一区二区 | 久久99精品久久久久久三级 | 天天操天天操天天操天天操天天操天天操 | 国产精品 美女 | 国产精品视频免费观看 | 久久久国产成人 | 中文字幕国语官网在线视频 | 在线色视频小说 | 久久99国产一区二区三区 | 久久香蕉电影 | 精品美女国产在线 | 精品国产电影一区 | 精品婷婷 | 色av男人的天堂免费在线 | 福利网址在线观看 | 久久精品美女 | 色之综合网 | 亚洲国产精品资源 | 一级片免费在线 | 91手机视频 | 亚洲国产97在线精品一区 | 亚洲精品小视频在线观看 | 国产成人一区二区三区影院在线 | 午夜影院一区 | 亚洲成人国产 | 伊人国产在线观看 | 夜夜骑天天操 | 久久国产精品99国产精 | 国产xxxx性hd极品 | 日韩精品一区在线观看 | 激情综合亚洲精品 | 天天射天天爽 | 国产精品18久久久久久久网站 | 免费高清在线一区 | 天天爽天天射 | 激情综合网色播五月 | 18做爰免费视频网站 | 免费成人在线观看视频 | 欧美日韩精品综合 | 国产精品久久久久久久久蜜臀 | 亚洲国产wwwccc36天堂 | 久久成人国产精品 | 黄色视屏av| 亚洲免费精品一区二区 | 国产一区二区在线精品 | 四虎成人av | 日韩系列在线观看 | 久久久久亚洲国产 | 久久综合五月天婷婷伊人 | 国产免费不卡av | 国产91aaa| 97超碰影视 | 美女视频黄免费的 | 午夜av免费观看 | 97国产一区二区 | 在线亚洲激情 | 国产精品久久久999 国产91九色视频 | 精品在线看 | 天天干干 | 国产做爰视频 | 亚洲国产精品免费 | 成人动漫一区二区三区 | 91精品黄色 | 欧美日韩免费一区二区 | 这里有精品在线视频 | 狠狠干激情 | 97综合网 | 天天操狠狠操网站 | 国产精品免费观看国产网曝瓜 | 亚洲成人黄色网址 | 成人手机在线视频 | 久久久久麻豆v国产 | 中文永久免费观看 | 午夜精品一区二区三区在线视频 | 婷婷伊人综合亚洲综合网 | 天天爽夜夜爽人人爽一区二区 | 四虎影视成人 | 精品久久久久久国产 | 国产一级在线免费观看 | 久久久精品国产一区二区三区 | 日韩城人在线 | 久久精品视频在线免费观看 | 国产日产精品久久久久快鸭 | 国产精品一区二区在线看 | 人人爽人人爽人人爽 | 韩日视频在线 | 狠狠狠综合 | 黄色免费看片网站 | 亚洲国产精品视频 | 亚洲视频 视频在线 | 国产成人精品一区二区 | 日日夜夜艹 | 日韩久久一区 | 久久99中文字幕 | 日本黄色免费观看 | 日韩3区 | 国产真实在线 | 国产一二区精品 | 久久午夜影院 | 久草com | 天天草夜夜 | 91免费看黄色 | 午夜视频在线观看一区二区三区 | 97手机电影网 | 蜜桃av人人夜夜澡人人爽 | 亚洲精品无 | 毛片黄色一级 | 成人国产网站 | 亚洲一级电影在线观看 | 久久久久久久久久久高潮一区二区 | 又黄又爽又色无遮挡免费 | 中文字幕乱码在线播放 | 色婷婷国产精品一区在线观看 | 在线成人一区二区 | 国产又粗又猛又黄又爽 | 亚洲精品视频在线播放 | 热久久这里只有精品 | av电影中文字幕在线观看 | 亚洲爱av| 夜夜高潮夜夜爽国产伦精品 | 国产成人精品一区二区三区免费 | 亚洲欧美成人综合 | 免费高清在线视频一区· | 国产玖玖视频 | 久久99精品久久久久久秒播蜜臀 | 久久精品亚洲精品国产欧美 | 成片免费观看视频大全 | 深爱激情婷婷网 | 免费国产黄线在线观看视频 | 中文字幕资源在线 | 久久人人97超碰国产公开结果 | 久久99免费 | 国产大陆亚洲精品国产 | 免费av高清| 热久在线 | 亚洲午夜久久久综合37日本 | 美女在线免费观看视频 | 久久国产欧美日韩精品 | 欧美一级大片在线观看 | 亚洲一区精品人人爽人人躁 | 在线播放视频一区 | 99色视频| 狠狠干狠狠艹 | 精品国产激情 | 51久久夜色精品国产麻豆 | 亚洲精品在线资源 | 人人草在线视频 | 国产剧情一区在线 | 日韩动漫免费观看高清完整版在线观看 | 人人讲下载 | 亚州视频在线 | 亚州精品一二三区 | 久久成人人人人精品欧 | 成年人国产视频 | 国产视频2021| 麻花天美星空视频 | 日韩中文久久 | 国产99久久久精品 | 国产婷婷色 | 涩涩网站在线看 | 久久久亚洲国产精品麻豆综合天堂 | 一区二区 不卡 | 在线观看精品国产 | 久久久久免费看 | 免费网站黄 | 97精品一区| 91在线精品视频 | 婷婷综合激情 | 7777xxxx| 久久婷婷五月综合色丁香 | 久久久精品网站 | 国产精品毛片久久久 | 欧美视频二区 | 国产精品6 | 日韩伦理一区二区三区av在线 | 女人高潮特级毛片 | 国产精品久久久久久影院 | 国产成人亚洲在线观看 | 日韩视频一区二区 | 黄色avwww | 伊人丁香 | 亚洲另类久久 | 亚洲精品午夜久久久 | 国产日本亚洲高清 | 欧洲亚洲女同hd | 在线a人v观看视频 | 91视频xxxx| 久热只有精品 | 欧美一级特黄aaaaaa大片在线观看 | 久久免费视频精品 | 国产精品第一视频 | av线上免费观看 | 中文字幕高清免费日韩视频在线 | 欧美成人xxxx | 久久免费精品一区二区三区 | 国产高清无av久久 | 午夜精品婷婷 | 国产视频精品网 | 国产一区观看 | 国产一区电影在线观看 | 免费看v片网站 | 日韩高清免费在线观看 | 久久成人国产精品免费软件 | 黄色a一级视频 | 亚洲精色 | 一级片在线 | 日韩三级视频在线观看 | av 一区二区三区 | 在线欧美中文字幕 | 久草久视频 | 日韩精品在线看 | 国产精品免费一区二区三区 | 爱色婷婷 | 久久久久夜色 | 国产成人av一区二区三区在线观看 | 久久亚洲福利视频 | 日女人免费视频 | 亚洲成人资源网 | 色av网站 | 深爱激情婷婷网 | 精品96久久久久久中文字幕无 | 久久免费播放 | 午夜久久久久久久久久影院 | 欧美精品中文 | 久久综合五月 | 亚洲日b视频 | 久久久久久久久久久久久久av | 丁香激情五月婷婷 | 国产成人在线免费观看 | av超碰在线 | 97超碰人人澡 | 国产经典 欧美精品 | 色老板在线视频 | 亚洲激情免费 | 亚洲精品小视频在线观看 | 亚洲精品欧美视频 | 日韩在线第一 | 久久黄网站 | 狠狠操天天射 | 精品久久久久久国产 | 国产美女精品视频 | 三级黄色在线观看 | 国产99久久九九精品免费 | 亚洲成人午夜在线 | 一级免费黄色 | 西西444www大胆高清视频 | 91香蕉国产 | 欧美日韩不卡在线 | 国产黄色免费电影 | 中文字幕色在线 | 91免费看黄色 | 操处女逼 | 日本一区二区不卡高清 | 不卡的av | 综合国产在线 | 中文av日韩| 人人添人人澡人人澡人人人爽 | 国产中文在线字幕 | 一区二区在线不卡 | 亚洲专区 国产精品 | 国产精品女教师 | 97国产情侣爱久久免费观看 | 久草视频在线资源 | 91视频久久 | 日韩在线免费视频 | 99国产在线| 成人国产综合 | 亚洲无吗视频在线 | 日韩中文字幕免费在线观看 | www狠狠操| 久久久99精品免费观看app | 欧美一级电影片 | 日韩在线观看一区二区 | 中文字幕在线观看网址 | 456免费视频| 亚洲电影久久久 | 黄色天堂在线观看 | 久久男人中文字幕资源站 | 色婷婷在线观看视频 | 9在线观看免费高清完整版在线观看明 | 97热视频| 欧美日韩亚洲在线 | 91av播放| 香蕉网站在线观看 | 少妇bbbb搡bbbb桶 | 九九免费在线观看 | 国产精品久久久久久久妇 | 91亚洲国产成人 | 久久精品免费 | 欧美与欧洲交xxxx免费观看 | av在线影视 | 国产中文字幕视频在线观看 | 超碰97免费 | 国产黄网在线 | 成人午夜电影网站 | 亚洲午夜久久久综合37日本 | 久久久国产在线视频 | 久久婷婷开心 | 欧美最新大片在线看 | 日本精品中文字幕在线观看 | 国产中文字幕视频在线观看 | 开心激情婷婷 | 91丝袜美腿 | 久草| 视频在线观看国产 | 黄色片网站大全 | 美女福利视频 | 四虎在线观看视频 | 日韩动漫免费观看高清完整版在线观看 | 国产成人在线精品 | 国产丝袜美腿在线 | 欧洲精品视频一区二区 | 日日操天天爽 | 亚洲三级国产 | 九九热只有精品 | 精品国产一区二区三区在线观看 | 97电影在线观看 | 日韩精品在线播放 | 久久久免费看 | 日韩免费观看一区二区三区 | 亚洲久久视频 | 亚洲综合色av | 97精品在线观看 | 亚洲欧美999 | 日日天天av | 国产亚洲精品bv在线观看 | 国产精品区免费视频 | 九九精品无码 | 日韩网页| 国产色婷婷精品综合在线手机播放 | 手机av电影在线观看 | 婷婷六月天天 | 久久久久久久久毛片 | 午夜精品久久久久久久爽 | 亚洲美女在线国产 | 免费在线观看av网址 | 波多野结衣在线观看一区二区三区 | 91福利国产在线观看 | 人人要人人澡人人爽人人dvd | 国产大片黄色 | 97人人人| 国产精品久久久99 | 国产精品igao视频网入口 | 人人插人人爱 | 国产日韩亚洲 | 在线欧美a| 成人久久久久久久久久 | 国产精品大片免费观看 | 亚洲天堂网视频在线观看 | 丁五月婷婷 | 美女视频黄免费网站 | 成人毛片一区二区三区 |