HTTP HTTPS的一些學習 個人學習

2022-06-16 05:00:17 字數 2019 閱讀 7580

http,全稱:hypertext transfer protocol,中文名為超文字傳輸;是一種協議規範,最初的主要目的是文件傳輸,可以說web是建立在http協議上通訊的;

http 和 tcp :http 是應用層協議,定義的是傳輸資料內容的規範;而 tcp 是底層通訊協議,定義的是資料傳輸和連線方式的規範。http 協議中的資料是利用 tcp 協議傳輸的,所以支援http 的也一定支援 tcp。

優缺點:

優點:可靠性:基於tcp/ip。繼承了tcp的特性  

無狀態:請求上下文每一次都是獨立的,可以看做是優點,也可以是缺點

缺點:無狀態:需要儲存上下文資訊;

明文傳輸;

當 http 開啟長連線時,共用乙個 tcp 連線,同一時刻只能處理乙個請求,那麼當前請求耗時過長的情況下,其它的請求只能處於阻塞狀態。

get 和 post 的區別

get 和 post 方法沒有實質區別,只是報文格式不同。

get和post請求只是http中的兩種請求方式,而http協議基於tcp/ip的應用層協議

無論 get 還是 post,用的都是同乙個傳輸層協議,所以在傳輸上,沒有區別。

我們經常說 get 請求引數的大小存在限制,而 post 請求的引數大小是無限制的。 其實這是有問題的,實際上 http 協議從來沒規定 get/post 的請求長度限制是多少。 對 get 請求引數的限制**於瀏覽器或者 web 伺服器,是它們限制了這個長度。 不同的瀏覽器和 web 伺服器,限制的最大長度不一樣。

狀態碼基本含義:

加密分為:

對稱加密:即客戶端服務端秘鑰都是相通的;

非對稱加密:有兩個秘鑰,乙個是公鑰乙個是私鑰;公鑰和私鑰成對出現,每個使用者對應的那套公鑰和私鑰是不同的。伺服器留著不對外公布的私鑰,然後將公鑰告訴所有人知道。

因為客戶端和伺服器使用的是兩個不同的秘鑰,所以這種演算法叫做非對稱加密。

htts採用了兩種加密方式的混用;但是一樣會被中間人攻擊,為了解決這個問題,使用數字證書認證機構(ca)及其頒發的數字證書來解決這個問題。假設加密方式是 md5,將**的資訊加密後通過第三方機構的私鑰再次進行加密,生成數字簽名。

驗證簽名的時候直接就從本地拿到相應第三方機構的公鑰,對私鑰加密後的數字簽名進行解密得到真正的簽名,然後客戶端利用簽名生成規則進行簽名生成,看兩個簽名是否匹配,如果匹配認證通過,不匹配則獲取證書失敗。

為了更加容易理解,最後的最後再進行梳理:

ca 業務流程:伺服器向 ca 提出公鑰認證的申請,申請註冊自己的公鑰。ca 在判明伺服器的身份後,會對公鑰做數字簽名,然後用 ca 自己的私鑰加密這份數字證書。數字證書 = **資訊 + 數字簽名

客戶端收到資訊:伺服器和客戶端進行聯絡的時候,會將自身的證書和公鑰傳送給客戶端。客戶端使用 ca 的公鑰,對證書進行解密,獲取數字簽名 a,然後根據 ca 的簽名生成規則,進行簽名生成,得到數字簽名 b。進一步比對兩者(a 和 b),如果不匹配,請求失敗,否則成功。

客戶端傳送資訊:這個環節跟混合加密(對稱加密 + 非對稱加密)的後續傳輸環節一致,即:客戶端生成隨機數,然後通過公鑰進行加密,將加密後的資料傳送給伺服器,伺服器通過私鑰進行解密,然後雙方用隨機數對應的對稱加密進行資料交流。

保證安全:作業系統和瀏覽器會維護乙個權威第三方認證機構的列表(包括他們的公鑰)

假設中間人篡改了伺服器傳送給客戶端的證書,由於他沒有 ca 的私鑰,所以無法得到加密後簽名,無法篡改相應的簽名。

瀏覽器收到這個證書後,使用 ca 的公鑰,對證書進行解密,獲取數字簽名 a,然後根據 ca 的簽名生成規則,進行簽名生成,得到數字簽名 b。進一步比對兩者(a 和 b),如果不匹配,請求失敗。

這樣子就終止了向伺服器傳輸資訊。

如果中間人設定另乙個**,也拿到了 ca 機構認證的證書,攔截了原本伺服器的傳送,將自己的證書傳送給客戶端,可以成功嗎?

答案也是否的。因為證書中包含了原本伺服器對應的**資訊(網域名稱等),瀏覽器將證書中的網域名稱和自己請求的網域名稱比對一下,就知道有沒有被掉包了。

工作原理

優缺點:

LINQ的一些學習

class introtolinq 2.query creation.numquery is an ienumerablevar numquery from num in numbers where num 2 0 select num 3.query execution.foreach int n...

css 的一些學習(一)

在前端的學習中總會遇到各種各樣的問題,而且是越來越多你所沒有想到的問題,但當你發現並用自己的努力成功解決的那一刻是那麼的爽。所以,一定要堅持做下去,一定可以看到希望。學習總是那樣,知道它運用它掌握它,對css的一些記錄。css的簡介 css 層疊樣式表 cascsding stytle sheets...

hive DML一些學習

1.載入load檔案資料到hive表裡面 先在hive裡面建立與要匯入資料字段相同的表,然後再將資料載入進去 load data local inpath filepath overwrite into table tablename 無論從linux還是hdfs上載入都不走mr local 帶lo...