2010-04-07 64 views
3

爲了簡單起見,請允許「假定」某些代碼需要使用完整的URL,即使該域位於同一臺服務器上,即不能使用簡單的文件路徑。哪個先發生?任何人都知道Apache服務器如何處理這個請求?

TCP/IP ??問題: 如果一個表單動作目標=「http://this-full-URL.com/postdata」(例如)那個URL也在同一個服務器上,那麼哪個先發生?

A)的數據被髮送 「出到幅材」,然後返回到相同的服務器, 或

B)發送任何(可能敏感)的數據,所述服務器之前(Linux操作系統,Apache,PHP) ,首先「發現」目標地址是本地的,那麼(很明顯)沒有數據通過網絡發送? 謝謝。

+2

通常,它是連接到目標URL中指定地址的客戶端(Web瀏覽器),而不是服務器。 (例如,當用戶提交表單時)。 – 2010-04-07 03:57:18

回答

5

正確答案是A.總是:-)

碰巧的是,當瀏覽器和服務器在同一臺機器上運行的情況下,「網絡」將成爲短路本地TCP/IP堆棧。但是,Apache和PHP不參與這個決定;它是OS網絡堆棧的純粹功能。但是,如果您的服務器位於NAT網關或防火牆之後並且DNS名稱正在解析到NAT網關/防火牆,則該請求將被路由到NAT網關/防火牆並返回到您的計算機。因此,爲了讓路由保留在同一臺計算機上,目標URL的主機的DNS名稱必須解析爲服務器計算機的實際IP地址,而不是隧道傳輸給它。

1

網絡軟件會將主機名解析爲您的機器,然後本地TCP堆棧將本地路由請求。流量永遠不會離開機器,它將全部在服務器的內存中。

+1

僅當客戶機HTTP代理程序與服務器在同一臺計算機上執行時。 – 2010-04-07 04:11:09

+0

這就是他在他的問題中所說的。 「...即使該域名在同一臺服務器上......」。 – 2010-04-07 06:22:31

相關問題