关于HTTP协议经典面试题 及答案
Http是什么?
通俗來講,他就是計(jì)算機(jī)通過網(wǎng)絡(luò)進(jìn)行通信的規(guī)則,是一個(gè)基于請(qǐng)求與響應(yīng),無狀態(tài)的,應(yīng)用層的協(xié)議,常基于TCP/IP協(xié)議傳輸數(shù)據(jù)。目前任何終端(手機(jī),筆記本電腦。。)之間進(jìn)行任何一種通信都必須按照Http協(xié)議進(jìn)行,否則無法連接。
四個(gè)基于:
請(qǐng)求與響應(yīng):客戶端發(fā)送請(qǐng)求,服務(wù)器端響應(yīng)數(shù)據(jù)
無狀態(tài)的:協(xié)議對(duì)于事務(wù)處理沒有記憶能力,客戶端第一次與服務(wù)器建立連接發(fā)送請(qǐng)求時(shí)需要進(jìn)行一系列的安全認(rèn)證匹配等,因此增加頁面等待時(shí)間,當(dāng)客戶端向服務(wù)器端發(fā)送請(qǐng)求,服務(wù)器端響應(yīng)完畢后,兩者斷開連接,也不保存連接狀態(tài),一刀兩斷!恩斷義絕!從此路人!下一次客戶端向同樣的服務(wù)器發(fā)送請(qǐng)求時(shí),由于他們之前已經(jīng)遺忘了彼此,所以需要重新建立連接。
應(yīng)用層:Http是屬于應(yīng)用層的協(xié)議,配合TCP/IP使用。
TCP/IP:Http使用TCP作為它的支撐運(yùn)輸協(xié)議。HTTP客戶機(jī)發(fā)起一個(gè)與服務(wù)器的TCP連接,一旦連接建立,瀏覽器(客戶機(jī))和服務(wù)器進(jìn)程就可以通過套接字接口訪問TCP。
針對(duì)無狀態(tài)的一些解決策略:
有時(shí)需要對(duì)用戶之前的HTTP通信狀態(tài)進(jìn)行保存,比如執(zhí)行一次登陸操作,在30分鐘內(nèi)所有的請(qǐng)求都不需要再次登陸。于是引入了Cookie技術(shù)。
HTTP/1.1想出了持久連接(HTTP keep-alive)方法。其特點(diǎn)是,只要任意一端沒有明確提出斷開連接,則保持TCP連接狀態(tài),在請(qǐng)求首部字段中的Connection: keep-alive即為表明使用了持久連接。
等等還有很多。。。。。。
http請(qǐng)求由三部分組成,分別是:請(qǐng)求行、消息報(bào)頭、請(qǐng)求正文
HTTP(超文本傳輸協(xié)議)是一個(gè)基于請(qǐng)求與響應(yīng)模式的、無狀態(tài)的、應(yīng)用層的協(xié)議,常基于TCP的連接方式,HTTP1.1版本中給出一種持續(xù)連接的機(jī)制,絕大多數(shù)的Web開發(fā),都是構(gòu)建在HTTP協(xié)議之上的Web應(yīng)用。
上題:
0、什么是HTTP協(xié)議
?對(duì)客戶端和服務(wù)器端之間數(shù)據(jù)傳輸?shù)母袷揭?guī)范,格式簡稱為“超文本傳輸協(xié)議”
1、HTTP常見的請(qǐng)求方法有哪些?
2、GET方法與POST方法的區(qū)別
區(qū)別一:
get重點(diǎn)在從服務(wù)器上獲取資源,post重點(diǎn)在向服務(wù)器發(fā)送數(shù)據(jù);
區(qū)別二:
get傳輸數(shù)據(jù)是通過URL請(qǐng)求,以field(字段)= value的形式,置于URL后,并用"?"連接,多個(gè)請(qǐng)求數(shù)據(jù)間用"&"連接,如http://127.0.0.1/Test/login.action?name=admin&password=admin,這個(gè)過程用戶是可見的;
post傳輸數(shù)據(jù)通過Http的post機(jī)制,將字段與對(duì)應(yīng)值封存在請(qǐng)求實(shí)體中發(fā)送給服務(wù)器,這個(gè)過程對(duì)用戶是不可見的;
區(qū)別三:
Get傳輸?shù)臄?shù)據(jù)量小,因?yàn)槭躑RL長度限制,但效率較高;
Post可以傳輸大量數(shù)據(jù),所以上傳文件時(shí)只能用Post方式;
區(qū)別四:
get是不安全的,因?yàn)閁RL是可見的,可能會(huì)泄露私密信息,如密碼等;
post較get安全性較高;
區(qū)別五:
get方式只能支持ASCII字符,向服務(wù)器傳的中文字符可能會(huì)亂碼。
post支持標(biāo)準(zhǔn)字符集,可以正確傳遞中文字符。
3、常見的HTTP相應(yīng)狀態(tài)碼
返回的狀態(tài)
1xx:指示信息--表示請(qǐng)求已接收,繼續(xù)處理
2xx:成功--表示請(qǐng)求已被成功接收、理解、接受
3xx:重定向--要完成請(qǐng)求必須進(jìn)行更進(jìn)一步的操作
4xx:客戶端錯(cuò)誤--請(qǐng)求有語法錯(cuò)誤或請(qǐng)求無法實(shí)現(xiàn)
5xx:服務(wù)器端錯(cuò)誤--服務(wù)器未能實(shí)現(xiàn)合法的請(qǐng)求
200:請(qǐng)求被正常處理
204:請(qǐng)求被受理但沒有資源可以返回
206:客戶端只是請(qǐng)求資源的一部分,服務(wù)器只對(duì)請(qǐng)求的部分資源執(zhí)行GET方法,相應(yīng)報(bào)文中通過Content-Range指定范圍的資源。
301:永久性重定向
302:臨時(shí)重定向
303:與302狀態(tài)碼有相似功能,只是它希望客戶端在請(qǐng)求一個(gè)URI的時(shí)候,能通過GET方法重定向到另一個(gè)URI上
304:發(fā)送附帶條件的請(qǐng)求時(shí),條件不滿足時(shí)返回,與重定向無關(guān)
307:臨時(shí)重定向,與302類似,只是強(qiáng)制要求使用POST方法
400:請(qǐng)求報(bào)文語法有誤,服務(wù)器無法識(shí)別
401:請(qǐng)求需要認(rèn)證
403:請(qǐng)求的對(duì)應(yīng)資源禁止被訪問
404:服務(wù)器無法找到對(duì)應(yīng)資源
500:服務(wù)器內(nèi)部錯(cuò)誤
503:服務(wù)器正忙
4、常見HTTP首部字段
a、通用首部字段(請(qǐng)求報(bào)文與響應(yīng)報(bào)文都會(huì)使用的首部字段)
Date:創(chuàng)建報(bào)文時(shí)間
Connection:連接的管理
Cache-Control:緩存的控制
Transfer-Encoding:報(bào)文主體的傳輸編碼方式
b、請(qǐng)求首部字段(請(qǐng)求報(bào)文會(huì)使用的首部字段)
Host:請(qǐng)求資源所在服務(wù)器
Accept:可處理的媒體類型
Accept-Charset:可接收的字符集
Accept-Encoding:可接受的內(nèi)容編碼
Accept-Language:可接受的自然語言
c、響應(yīng)首部字段(響應(yīng)報(bào)文會(huì)使用的首部字段)
Accept-Ranges:可接受的字節(jié)范圍
Location:令客戶端重新定向到的URI
Server:HTTP服務(wù)器的安裝信息
d、實(shí)體首部字段(請(qǐng)求報(bào)文與響應(yīng)報(bào)文的的實(shí)體部分使用的首部字段)
Allow:資源可支持的HTTP方法
Content-Type:實(shí)體主類的類型
Content-Encoding:實(shí)體主體適用的編碼方式
Content-Language:實(shí)體主體的自然語言
Content-Length:實(shí)體主體的的字節(jié)數(shù)
Content-Range:實(shí)體主體的位置范圍,一般用于發(fā)出部分請(qǐng)求時(shí)使用
5、HTTP的缺點(diǎn)與HTTPS
a、通信使用明文不加密,內(nèi)容可能被竊聽
b、不驗(yàn)證通信方身份,可能遭到偽裝
c、無法驗(yàn)證報(bào)文完整性,可能被篡改
HTTPS就是HTTP加上加密處理(一般是SSL安全通信線路)+認(rèn)證+完整性保護(hù)
6、Http協(xié)議有哪些特征?
1、支持客戶/服務(wù)器模式;2、簡單快速;3、靈活;4、無連接;5、無狀態(tài);
7、HTTP協(xié)議中HTTP1.0和1.1 有什么區(qū)別
在HTTP1.0中,當(dāng)連接建立后,客戶端發(fā)送一個(gè)請(qǐng)求,服務(wù)器端返回一個(gè)信息后就關(guān)閉了連接。當(dāng)瀏覽器下次要請(qǐng)求是又要重新建立連接,顯然這種不斷建立連接的方式會(huì)造成很多問題。
在HTTP1.1中,引入了持續(xù)連接的概念,通過這種連接瀏覽器建立一個(gè)連接之后,發(fā)送請(qǐng)求并得到返回消息,然后繼續(xù)發(fā)送請(qǐng)求再次得到返回消息,也就是說客戶端可以連續(xù)發(fā)送多個(gè)請(qǐng)求,而不用等待每一個(gè)響應(yīng)的到來。
8、Http優(yōu)化
利用負(fù)載均衡優(yōu)化和加速HTTP應(yīng)用
利用HTTP Cache來優(yōu)化網(wǎng)站
總結(jié)
以上是生活随笔為你收集整理的关于HTTP协议经典面试题 及答案的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [洛谷3041]视频游戏的连击Video
- 下一篇: 移动端完成样式之后出现横向滚动条(X 轴