2013-10-08 37 views
2

假設我有一個簡單的ASP.NET MVC應用程序,其索引視圖只顯示一些靜態數據。我們何時說在Web應用程序中建立連接?

考慮到Web是無狀態的,當瀏覽器請求這個index.cshtml時,會發出HTTP Get請求,服務器會將頁面內容發送給客戶端。

在這種情況下是否存在一個稱爲連接的實體?如果是的話,我們何時可以說連接已建立?

希望我的問題很清楚。

+2

連接建立在tcp級別,然後http會話經過 –

回答

2

在任何調用您的MVC應用程序之前,在客戶端(瀏覽器)和底層Web服務器(IIS)之間建立連接。

如果在Web應用程序中收到請求,則TCP連接已建立並且HTTP請求已通過TCP發送到服務器。使用保持活動的語義,多個請求可以使用相同的連接,當然,甚至可以針對相同的請求調用多個動作。

因此,基本上,建立連接對於Web應用程序來說不是特別有用,可以指示或跟蹤,如果這是您正在嘗試執行的操作。

+0

連接建立_ browser_,**到底層web服務器是否更準確? –

+0

嗯,是的,沒有。它由客戶端發起,但客戶端和服務器都通過SYN/SYN-ACK/ACK握手參與建立TCP連接。儘管如此,我不認爲這個技術對於這個問題是非常必要的。重點在於它的處理水平對於Web應用程序基本上是不可見的。 – Gerald

+0

我繼續前進,更新了我的答案,使其更準確一些。 – Gerald

1

的連接estabished到IIS服務器/過程,然後轉發到.NET,所以IIS接收它的時刻,它的「建立」

+0

因此,在這種情況下,我們可以說現在連接已關閉嗎? – ckv

+0

我希望(不要在這裏引用我......)在服務器刷新所有數據並由客戶端接收到連接時關閉連接(提供一切順利)。 我可以問這樣的興趣嗎?我會問,這對開發人員來說是「超出範圍」嗎? –

1

HTTP協議是基於TCP協議。在發出GET請求之前,必須建立TCP連接。

「連接已關閉」發生在TCP連接關閉時,通常在單個請求/響應交互之後。

通過使用Keep-Alive可以保持連接打開。

相關問題