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