搜尋
首頁JavaJava面試題java面試之HTTP和HTTPS協議

java面試之HTTP和HTTPS協議

Dec 29, 2020 am 10:25 AM
httphttpsjava協定面試

java面試之HTTP和HTTPS協議

首先我們來看下阿里和順豐面試題目。

阿里面試題:對HTTP協定了解多少,HTTP和HTTPS有什麼差別,HTTPS的安全性是怎麼實現的

順豐面試題:http說明

(學習影片分享:java影片教學

詳細解答如下:

一、HTTP簡介 

HTTP協定是Hyper Text Transfer Protocol(超文本傳輸協定)的縮寫。 HTTP協定工作於客戶端-服務端架構為上。瀏覽器以HTTP客戶端透過URL向HTTP服務端即WEB伺服器傳送所有請求。 Web伺服器根據接收到的請求後,向客戶端發送回應訊息。
二、HTTP協定特點
無連線:無連線的意義是限制每次連線只處理一個請求。伺服器處理完客戶的請求,並收到客戶的應答後,即斷開連線。採用這種方式可以節省傳輸時間。
無狀態:HTTP協定是無狀態協定。無狀態是指協議對於事務處理沒有記憶能力。缺少狀態意味著如果後續處理需要前面的訊息,則它必須重傳,這可能導致每次連接傳送的資料量增加。另一方面,在伺服器不需要先前資訊時它的應答就較快。
三、HTTP之狀態碼
1xx:指示訊息–表示請求已接收,繼續處理
2xx:成功–表示請​​求已成功接收、理解、接受
3xx:重定向–要完成請求必須進行更進一步的操作
4xx:客戶端錯誤–請求有語法錯誤或請求無法實現
5xx:伺服器端錯誤–伺服器未能實現合法的請求
常見的狀態碼:

200 OK                     //客户端请求成功400 Bad Request            //客户端请求有语法错误,不能被服务器所理解401 Unauthorized           //请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用 403 Forbidden              //服务器收到请求,但是拒绝提供服务404 Not Found              //请求资源不存在,eg:输入了错误的URL500 Internal Server Error  //服务器发生不可预期的错误503 Server Unavailable     //服务器当前不能处理客户端的请求,一段时间后可能恢复正常

四、HTTP工作原理 

#

HTTP協定定義Web客戶端如何從Web伺服器請求Web頁面,以及伺服器如何把Web頁面傳送給客戶端。 HTTP協定採用了請求/回應模型。客戶端向伺服器發送請求報文,請求封包包含請求的方法、URL、協定版本、請求頭部和請求資料。伺服器以一個狀態行作為回應,回應的內容包括協定的版本、成功或錯誤代碼、伺服器資訊、回應頭部和回應資料。
以下是HTTP 請求/回應的步驟:
1、客戶端連線到Web伺服器
一個HTTP客戶端,通常是瀏覽器,與Web伺服器的HTTP連接埠(預設為80)建立一個TCP套接字連線。例如,http://www.baidu.con。
2、發送HTTP請求
透過TCP套接字,客戶端向Web伺服器發送一個文字的請求報文,一個請求報文由請求行、請求頭部、空白行和請求資料4部分組成。
3、伺服器接受請求並回傳HTTP回應
Web伺服器解析請求,定位請求資源。伺服器將資源複本寫到TCP套接字,由客戶端讀取。一個回應由狀態行、回應頭部、空行和回應資料4部分組成。
4、釋放連接TCP連接
若connection 模式為close,則伺服器主動關閉TCP連接,客戶端被動關閉連接,釋放TCP連接;若connection 模式為keepalive,則該連線會維持一段時間,在該時間內可以繼續接收請求;
#5、用戶端瀏覽器解析HTML內容
用戶端瀏覽器首先解析狀態行,查看表示請求是否成功的狀態代碼。接著解析每一個回應頭,回應頭告知以下為若干位元組的HTML文件和文件的字元集。客戶端瀏覽器讀取回應資料HTML,根據HTML的語法對其進行格式化,並在瀏覽器視窗中顯示。
例如:在瀏覽器網址列鍵入URL,按下回車後會經歷以下流程:
1、瀏覽器向DNS 伺服器請求解析該URL 中的網域所對應的IP 位址;
2 、解析出IP 位址後,根據該IP 位址和預設連接埠80,和伺服器建立TCP連線;
3、瀏覽器發出讀取檔案(URL 中網域後面部分對應的檔案)的HTTP 請求,該請求報文作為TCP 三次握手的第三個報文的資料傳送給伺服器;
4、伺服器對瀏覽器請求作出回應,並把對應的html 文字傳送給瀏覽器;
5、釋放TCP連線;
6、瀏覽器將該html 文字並顯示內容;

(更多相關面試題請造訪:java面試題目及答案)

#

五、HTTP和HTTPS有什麼差別
HTTPS:是以安全為目標的HTTP通道,簡單講是HTTP的安全版,即HTTP下加入SSL層,HTTPS的安全基礎是SSL,因此加密的詳細內容就需要SSL。
HTTPS協定的主要功能可以分為兩種:一種是建立一個資訊安全通道,來確保資料傳輸的安全性;另一種就是確認網站的真實性。
HTTPS和HTTP的差異主要如下:
1、https協定需要到ca申請證書,一般免費證書較少,因而需要一定費用。
2、http是超文本傳輸協議,訊息是明文傳輸,https則是具有安全性的ssl加密傳輸協議。
3、http和https使用的是完全不同的連接方式,用的連接埠也不一樣,前者是80,後者是443。
4、http的連接很簡單,是無狀態的;HTTPS協議是由SSL HTTP協議建構的可進行加密傳輸、身份認證的網路協議,比http協議安全。
六、HTTPS的安全性是怎麼實現的

java面試之HTTP和HTTPS協議
(1)客戶使用https的URL存取Web伺服器,要求與Web伺服器建立SSL連線。
(2)Web伺服器收到客戶端請求後,會將網站的憑證資訊(憑證中包含公鑰)傳送一份給客戶端。
(3)客戶端的瀏覽器與Web伺服器開始協商SSL連線的安全等級,也就是資訊加密的等級。
(4)用戶端的瀏覽器根據雙方同意的安全等級,建立會話金鑰,然後利用網站的公鑰將會話金鑰加密,並傳送給網站。
(5)Web伺服器利用自己的私鑰解密出會話金鑰。
(6)Web伺服器利用會話金鑰加密與客戶端之間的通訊。
java面試之HTTP和HTTPS協議

相關推薦:java入門教學

#

以上是java面試之HTTP和HTTPS協議的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文轉載於:csdn。如有侵權,請聯絡admin@php.cn刪除

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

EditPlus 中文破解版

EditPlus 中文破解版

體積小,語法高亮,不支援程式碼提示功能

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SecLists

SecLists

SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。