面试必考HTTP协议面试题(含答案)
今天我們整理一下關(guān)于前端面試時會問到HTTP協(xié)議的問題
注:個人觀點及答案,望大家采納,指教!!
HTTP 簡介:
HTTP 協(xié)議是Hyper Text Transfer Protocol(超文本傳輸協(xié)議)的縮寫,是用于從萬維網(wǎng)(WWW:World Wide Web )服務(wù)器傳輸超文本到本地瀏覽器的傳送協(xié)議;
HTTP 是一個基于TCP/IP通信協(xié)議來傳遞數(shù)據(jù)(HTML文件、圖片文件、查詢結(jié)果等);
HTTP工作原理:
HTTP協(xié)議工作于客戶端-服務(wù)端架構(gòu)上,瀏覽器作為HTTP客戶端通過URL向HTTP服務(wù)端發(fā)送所有請求。
web服務(wù)器有:Apache 服務(wù)器、lls服務(wù)器等;
HTTP默認端口號為80,但是也可以改為8080或者其他端口;
1.HTTP的優(yōu)點和缺點?
優(yōu)點:
- 支持客戶/服務(wù)器模式:
- 應(yīng)用廣泛且跨平臺:
- 簡單快速、靈活:
缺點:
- 無連接:
- 無狀態(tài):無狀態(tài)可以減輕服務(wù)器負擔(dān),但進行關(guān)聯(lián)操作時繁瑣,Cookie正好可以解決這個問題
- 明文傳輸:調(diào)試便利的同時帶來了信息易被竊取
- 不安全:(HTTPS通過引入SSL/TLS層,解決了這個隱患)
2.請求類型Get與Post之間的區(qū)別?
區(qū)別一:
get重點在從服務(wù)器上獲取資源,post重點在向服務(wù)器發(fā)送數(shù)據(jù);
區(qū)別二:
get是不安全的,因為URL是可見的,可能會泄露私密信息,如密碼等; post較get安全性較高;
區(qū)別三:
get傳輸數(shù)據(jù)是通過URL請求,以field(字段)= value的形式,置于URL后,并用"?"連接,多個請求數(shù)據(jù)間用"&"連接,如http://127.0.0.1/Test/login.action?name=admin&password=admin,這個過程用戶是可見的;
post傳輸數(shù)據(jù)通過Http的post機制,將字段與對應(yīng)值封存在請求實體中發(fā)送給服務(wù)器,這個過程對用戶是不可見的
區(qū)別四:
Get傳輸?shù)臄?shù)據(jù)量小,因為受URL長度限制,但效率較高;
Post可以傳輸大量數(shù)據(jù),所以上傳文件時只能用Post方式;
區(qū)別五:
get方式只能支持ASCII字符,向服務(wù)器傳的中文字符可能會亂碼。
post支持標準字符集,可以正確傳遞中文字符。
3.HTTP與HTTPS的區(qū)別?
HTTPS:是以安全為目標的 HTTP 通道,是 HTTP 的安全版。HTTPS 的安全基礎(chǔ)是 SSL。SSL 協(xié)議位于 TCP/IP
協(xié)議與各種應(yīng)用層協(xié)議之間,為數(shù)據(jù)通訊提供安全支持。
區(qū)別:
- HTTP 是超文本傳輸協(xié)議,信息是明文傳輸,HTTPS 則是具有安全性的 SSL 加密傳輸協(xié)議。
- HTTP和HTTPS 使用完全不同的連接方式,所用的端口不同,前者是80 端口,后者是 443端口
4.常見HTTP的狀態(tài)碼有哪些?
- 200 – 請求成功
- 301 – 資源(網(wǎng)頁等)被永久轉(zhuǎn)移到其它URL
- 404 – 請求的資源(網(wǎng)頁等)不存在
- 500 – 內(nèi)部服務(wù)器錯誤
補充:
6.HTTP常見的字段有哪些?
-
URI&URL:
URI:統(tǒng)一資源標識符,不僅可以標識http,ftp等其他的網(wǎng)絡(luò)資源
URL:統(tǒng)一資源定位符 -
請求頭:
GET :獲取一個資源,同時參數(shù)直接跟在URL后面,url長度受限制2048字節(jié)
POST:不僅可以獲取資源,還可以提交資源(譬如上傳文件),參數(shù)放在請求體中,包大小4G
HEAD:只要響應(yīng)頭,沒有響應(yīng)體,通常用于測試URL是否存在
DELETE:刪除一個資源
PUT:通常修改一個資源 -
響應(yīng)頭:
Content-Length:響應(yīng)體的長度
Server:服務(wù)器的信息
Content-Type:內(nèi)容的類型,text/html,xml等
Last-Modified :最有的修改日期,通常跟緩存相關(guān) 20151108
Location: 新的地址 -
響應(yīng)碼:
200 OK 訪問正常
206 跟斷點續(xù)傳相關(guān)
3XX 重定向:Location
304 緩存有效
307 臨時重定向
4XX 客戶端問題
401 代表沒有權(quán)限訪問
404 代表訪問的資源不存在
5XX 通常服務(wù)器內(nèi)部處理的問題
7.請談?wù)勀銓Α?****三次握手與四次揮手**** ”的理解并說說作用?
三次握手:
1、第一次握手:客戶端給服務(wù)端發(fā)一個 SYN 報文,并指明客戶端的初始化序列號 ISN(c)。此時客戶端處于 SYN_Send 狀態(tài)。
2、第二次握手:服務(wù)器收到客戶端的 SYN 報文之后,會以自己的 SYN 報文作為應(yīng)答,并且也是指定了自己的初始化序列號 ISN(s),同時會把客戶端的 ISN + 1 作為 ACK 的值,表示自己已經(jīng)收到了客戶端的 SYN,此時服務(wù)器處于 SYN_REVD 的狀態(tài)。
3、第三次握手:客戶端收到 SYN 報文之后,會發(fā)送一個 ACK 報文,當(dāng)然,也是一樣把服務(wù)器的 ISN + 1 作為 ACK 的值,表示已經(jīng)收到了服務(wù)端的 SYN 報文,此時客戶端處于 establised 狀態(tài)。
服務(wù)器收到 ACK 報文之后,也處于 establised 狀態(tài),此時,雙方以建立起了鏈接。
三次握手的作用:
1、確認雙方的接受能力、發(fā)送能力是否正常;
2、指定自己的初始化序列號,為后面的可靠傳送做準備;
3、如果是 https 協(xié)議的話,三次握手這個過程,還會進行數(shù)字證書的驗證以及加密密鑰的生成到。
四次揮手:
1、第一次揮手:客戶端發(fā)送一個 FIN 報文,報文中會指定一個序列號。此時客戶端處于FIN_WAIT1狀態(tài)。
2、第二次握手:服務(wù)端收到 FIN 之后,會發(fā)送 ACK 報文,且把客戶端的序列號值 + 1 作為 ACK 報文的序列號值,表明已經(jīng)收到客戶端的報文了,此時服務(wù)端處于 CLOSE_WAIT狀態(tài)。
3、第三次揮手:如果服務(wù)端也想斷開連接了,和客戶端的第一次揮手一樣,發(fā)給 FIN 報文,且指定一個序列號。此時服務(wù)端處于 LAST_ACK 的狀態(tài)。
4、第四次揮手:客戶端收到 FIN 之后,一樣發(fā)送一個 ACK 報文作為應(yīng)答,且把服務(wù)端的序列號值 + 1 作為自己 ACK 報文的序列號值,此時客戶端處于 TIME_WAIT 狀態(tài)。需要過一陣子以確保服務(wù)端收到自己的 ACK 報文之后才會進入 CLOSED 狀態(tài)
服務(wù)端收到 ACK 報文之后,就處于關(guān)閉連接了,處于 CLOSED 狀態(tài)。
總結(jié)
以上是生活随笔為你收集整理的面试必考HTTP协议面试题(含答案)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 5G网络切片的七种武器(一)
- 下一篇: 电力工程师 计算机英语,电力工程师的英文