2017-04-25 46 views
3

本週,我正在挖掘Angular的服務器端渲染。它似乎被設計爲完全同構的,所以如果你正在服務器或客戶端上獲取數據,它就是運行的同一行代碼。因此,它會撥打電話this.http.get('http://www.example.com/myurl');,其中this.http將從@angular/http開始爲Http的實例。如果你的服務器對自己做XHR會發生什麼?

在客戶端,這是非常明確的。這意味着瀏覽器正在向我的服務器發送XHR請求。

在服務器端......幕後實際發生了什麼?我想象節點服務器,完全不知道它的域名,會發出一個常規的http請求,通過DNS查找和一切,只是爲了找到它自己?

這是否準確?

+0

我不明白這個問題。客戶端將向服務器發出HTTP請求。服務器攔截請求並相應地發送回覆。 – Booster2ooo

+0

我想你會得到頁面HTML作爲迴應 – Tushar

+2

你的假設是正確的。節點服務器只會向'$ {req.protocol}:// $ {req.headers.host}/your/relative/route'發出一個新的HTTP請求,它甚至不知道它將最終發出請求本身。 – idbehold

回答

0

所有評論指出的問題的答案是,你的服務器將伸出DNS呼叫回來,並擊中自己。

由於我很好奇這個知道性能,我做了這樣的測試:time curl -v http://[mydomain].us-east-1.elb.amazonaws.com/testedself

端點只是一個帶有res.send('Hello World');的快速端點。在這個特定的測試中額外的時間是〜10MS。

相關問題