我GOOGLE了很多,很多答案是是的。例如:Is GET data also encrypted in HTTPS?但是我們公司的高級安全工程師告訴我URL不會被加密。https是否加密整個URL?
該圖像表明,如果URL被加密,DNS服務器如何找到主機並連接?
我認爲這是非常強大的一點,雖然這是對大多數答案。所以我很困惑,我的問題是:
- https是否加密了請求中的所有內容? (包括URL,主機,路徑,參數,頭文件)
- 如果是,DNS服務器如何解密請求並將其發送到主機服務器?
我試圖訪問https://www.amazon.com/gp/css/homepage.html/ref=ya_surl_youracct,我的IE瀏覽器發送兩個請求到服務器:
第一:
CONNECT www.amazon.com:443 HTTP/1.0
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko
Host: www.amazon.com
Content-Length: 0
DNT: 1
Connection: Keep-Alive
Pragma: no-cache
二:
GET /gp/css/homepage.html/ref=ya_surl_youracct HTTP/1.1
Accept: text/html, application/xhtml+xml, */*
Accept-Language: en-US,zh-CN;q=0.5
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko
Accept-Encoding: gzip, deflate
Host: www.amazon.com
DNT: 1
Connection: Keep-Alive
看來我的瀏覽器已經請求兩次:第一次是建立與主機的連接(不加密),第二次通過https發送加密的請求?我對嗎?如果我正確理解這一點,當客戶端使用https調用RESTFUL API時,它每次發送請求(連接和獲取/發佈)兩次?
在安全方面你應該假設該URL是公開的。實際情況並非如此(請參閱JohnWu的回覆),但正如@ T.Rob所說的,您應該認爲可以對其進行查看,並且不會對其敏感。 –