HTTPS協議中POST的資料是被加密的嗎?

來源:互聯網
上載者:User

回複內容:

HTTP本身所有的資料都是不加密的。準確的說,HTTPS不是一種協議,而是HTTP和SSL兩種技術的組合。

SSL是Secure Socket Layer,安全通訊端層,有時也成為TLS(Transport Layer Security),是介於傳輸層和應用程式層的一個拓展的層,可以透明的將應用程式層資料加密然後通過傳輸層送出去。因此,使用了SSL傳輸的HTTP報文, 從HTTP Headers到主體都是加密的。HTTP是應用程式層的協議HTTP是應用程式層的協議
再看
電腦網路通訊協定從應用程式層開始向下利用下層協議的原理就是在每層增加相應的頭部資訊。電腦網路通訊協定從應用程式層開始向下利用下層協議的原理就是在每層增加相應的頭部資訊。
下面是應用程式層協議HTTP
下面是TCP協議報文,資料部分填充的就是HTTP協議的內容下面是TCP協議報文,資料部分填充的就是HTTP協議的內容

然後回答題主的問題,HTTP協議是整體被加密填充到TCP協議的報文資料部分的,所以不僅僅是post的資料部分TCP層以上的Payload資料都是加密的。首先可以很明確告訴你,訪問HTTPS網站無論get請求中的資料還是post請求的都是 加密的。不信可以參考 php中$_GET和$_POST函數。值不是提交到php檔案麼,我咋在地址欄中看不到php尾碼名? - 軍火大王理世醬的回答 裡面的方法做個抓包的小實驗,再通過關鍵詞字串尋找。

至於有位答主說網域名稱不加密,這是通過抓取普通的DNS資料包截獲的,跟SSL/TLS協議本身並沒有關係。如果你使用dnscrypt就可以避免直接泄漏訪問的網域名稱,但IP地址是公開的,在技術上並不是沒有辦法間接擷取訪問的網域名稱。是加密的應該是先用戶端先加密,後傳輸。SSL跟TLS不是一回事,但他們很相似,TLS是SSL的繼任者。
SSL是個二進位協議,HTTP是個字元型協議。如果地址以HTTPS開頭的話,用戶端會先用HTTP協議串連目標伺服器的80連接埠,(這個過程是不加密的)。這個過程交換雙方協議的版本號碼,選擇雙方都瞭解的密碼,對雙方身份進行驗證,產生臨時的會話密匙。接著,用戶端利用相應的參數跟伺服器進行通訊,從這裡開始就開始加密了。不是加密的,http本身並不提供加密功能,你抓包看到的加密資料是http下面的會話層加密的(ssl)
  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.