“约见”面试官系列之常见面试题第十六篇之http(建议收藏)
?
HTTP(Hyper Text Transfer Protocol(超文本傳輸協(xié)議))是一個簡單的請求-響應(yīng)協(xié)議,它通常運(yùn)行在 TCP 之上。它指定了客戶端可能發(fā)送給服務(wù)器什么樣的消息以及得到什么樣的響應(yīng)。請求和響應(yīng)消息的頭以 ASCII 碼形式給出;而消息內(nèi)容則具有一個類似 MIME 的格式。HTTP 是應(yīng)用層協(xié)議,同其他應(yīng)用層協(xié)議一樣,是為了實(shí)現(xiàn)某一類具體應(yīng)用的協(xié)議,并由某一運(yùn)行在用戶空間的應(yīng)用程序來實(shí)現(xiàn)其功能。HTTP 是一種協(xié)議規(guī)范,這種規(guī)范記錄在文檔上,為真正通過 HTTP 協(xié)議進(jìn)行通信的 HTTP 的實(shí)現(xiàn)程序。HTTP 協(xié)議是基于 C/S 架構(gòu)進(jìn)行通信的,而 HTTP 協(xié)議的服務(wù)器端實(shí)現(xiàn)程序有 httpd、nginx 等,其客戶端的實(shí)現(xiàn)程序主要是 Web 瀏覽器。
- HTTP 是一種無狀態(tài)協(xié)議,即對于事務(wù)處理沒有記憶能力,服務(wù)器不保留與客戶交易時的任何狀態(tài),如果后續(xù)處理需要前面的信息,則它必須重傳,這樣可能導(dǎo)致每次連接傳送的數(shù)據(jù)量增大。
- HTTP 是一種面向?qū)ο蟮膮f(xié)議。允許傳送任意類型的數(shù)據(jù)對象。它通過數(shù)據(jù)類型和長度來標(biāo)識所傳送的數(shù)據(jù)內(nèi)容和大小,并允許對數(shù)據(jù)進(jìn)行壓縮傳送。
- HTTP 規(guī)范定義了 9 種請求方法:get、post、delete、put、head、trace、options、patch、connect。
- 默認(rèn)端口 80
客戶端發(fā)送一個 HTTP 請求消息包括以下格式:請求行(request line)、請求頭部(header)、空行、請求數(shù)據(jù)。
例如:
HTTP 響應(yīng)狀態(tài)行、消息報(bào)頭、空行和響應(yīng)正文。
例如:
HTTP 響應(yīng)頭:
- Allow 服務(wù)器支持哪些請求方法(如 GET、POST 等)。
- Content-Encoding 文檔的編碼(Encode)方法。只有在解碼之后才可以得到 Content-Type 頭指定的內(nèi)容類型。利用 gzip 壓縮文檔能夠顯著地減少 HTML 文檔的下載時間。
- Content-Length 表示內(nèi)容長度。只有當(dāng)瀏覽器使用持久 HTTP 連接時才需要這個數(shù)據(jù)。
- Content-Type 表示后面的文檔屬于什么 MIME 類型。Servlet 默認(rèn)為 text/plain,但通常需要顯式地指定為 text/html(content-type:text/xml; charset= utf-8)。
- Date 當(dāng)前的 GMT 時間
- Expires 應(yīng)該在什么時候認(rèn)為文檔已經(jīng)過期,從而不再緩存它
- Last-Modified 文檔的最后改動時間
- Location 表示客戶應(yīng)當(dāng)?shù)侥睦锶ヌ崛∥臋n
- Refresh 表示瀏覽器應(yīng)該在多少時間之后刷新文檔,以秒計(jì)
- Server 服務(wù)器名字
- Set-Cookie 設(shè)置和頁面關(guān)聯(lián)的 Cookie
- WWW-Authenticate 客戶應(yīng)該在 Authorization 頭中提供什么類型的授權(quán)信息
HTTP 狀態(tài)碼
常見:
- 200 - 請求成功
- 301 - 資源(網(wǎng)頁等)被永久轉(zhuǎn)移到其它 URL
- 404 - 請求的資源(網(wǎng)頁等)不存在
- 500 - 內(nèi)部服務(wù)器錯誤
5 種分類:
-
1** 信息,服務(wù)器收到請求,需要請求者繼續(xù)執(zhí)行操作
1)100 Continue 繼續(xù)。客戶端應(yīng)繼續(xù)其請求
2)101 Switching Protocols 切換協(xié)議。服務(wù)器根據(jù)客戶端的請求切換協(xié)議。只能切換到更高級的協(xié)議,例如,切換到 HTTP 的新版本協(xié)議 -
2** 成功,操作被成功接收并處理
1)200 OK 請求成功。一般用于 GET 與 POST 請求
2)201 Created 已創(chuàng)建。成功請求并創(chuàng)建了新的資源
3)202 Accepted 已接受。已經(jīng)接受請求,但未處理完成
4)203 Non-Authoritative Information 非授權(quán)信息。請求成功。但返回的 meta 信息不在原始的服務(wù)器,而是一個副本
5)204 No Content 無內(nèi)容。服務(wù)器成功處理,但未返回內(nèi)容。在未更新網(wǎng)頁的情況下,可確保瀏覽器繼續(xù)顯示當(dāng)前文檔
6)205 Reset Content 重置內(nèi)容。服務(wù)器處理成功,用戶終端(例如:瀏覽器)應(yīng)重置文檔視圖。可通過此返回碼清除瀏覽器的表單域
7)206 Partial Content 部分內(nèi)容。服務(wù)器成功處理了部分 GET 請求 -
3** 重定向,需要進(jìn)一步的操作以完成請求
1)300 Multiple Choices 多種選擇。請求的資源可包括多個位置,相應(yīng)可返回一個資源特征與地址的列表用于用戶終端(例如:瀏覽器)選擇
2)301 Moved Permanently 永久移動。請求的資源已被永久的移動到新 URI,返回信息會包括新的 URI,瀏覽器會自動定向到新 URI。今后任何新的請求都應(yīng)使用新的 URI 代替
3)302 Found 臨時移動。與 301 類似。但資源只是臨時被移動。客戶端應(yīng)繼續(xù)使用原有 URI
4)303 See Other 查看其它地址。與 301 類似。使用 GET 和 POST 請求查看
5)304 Not Modified 未修改。所請求的資源未修改,服務(wù)器返回此狀態(tài)碼時,不會返回任何資源。客戶端通常會緩存訪問過的資源,通過提供一個頭信息指出客戶端希望只返回在指定日期之后修改的資源
6)305 Use Proxy 使用代理。所請求的資源必須通過代理訪問
7)306 Unused 已經(jīng)被廢棄的 HTTP 狀態(tài)碼
8)307 Temporary Redirect 臨時重定向。與 302 類似。使用 GET 請求重定向 -
4** 客戶端錯誤,請求包含語法錯誤或無法完成請求
1)400 Bad Request 客戶端請求的語法錯誤,服務(wù)器無法理解
2)401 Unauthorized 請求要求用戶的身份認(rèn)證
3)402 Payment Required 保留,將來使用
4)403 Forbidden 服務(wù)器理解請求客戶端的請求,但是拒絕執(zhí)行此請求
5)404 Not Found 服務(wù)器無法根據(jù)客戶端的請求找到資源(網(wǎng)頁)。通過此代碼,網(wǎng)站設(shè)計(jì)人員可設(shè)置"您所請求的資源無法找到"的個性頁面
6)405 Method Not Allowed 客戶端請求中的方法被禁止
7)406 Not Acceptable 服務(wù)器無法根據(jù)客戶端請求的內(nèi)容特性完成請求
8)407 Proxy Authentication Required 請求要求代理的身份認(rèn)證,與 401 類似,但請求者應(yīng)當(dāng)使用代理進(jìn)行授權(quán)
9)408 Request Time-out 服務(wù)器等待客戶端發(fā)送的請求時間過長,超時
10)409 Conflict 服務(wù)器完成客戶端的 PUT 請求時可能返回此代碼,服務(wù)器處理請求時發(fā)生了沖突
11)410 Gone 客戶端請求的資源已經(jīng)不存在。410 不同于 404,如果資源以前有現(xiàn)在被永久刪除了可使用 410 代碼,網(wǎng)站設(shè)計(jì)人員可通過 301 代碼指定資源的新位置
12)411 Length Required 服務(wù)器無法處理客戶端發(fā)送的不帶 Content-Length 的請求信息
13)412 Precondition Failed 客戶端請求信息的先決條件錯誤
14)413 Request Entity Too Large 由于請求的實(shí)體過大,服務(wù)器無法處理,因此拒絕請求。為防止客戶端的連續(xù)請求,服務(wù)器可能會關(guān)閉連接。如果只是服務(wù)器暫時無法處理,則會包含一個 Retry-After 的響應(yīng)信息
15)414 Request-URI Too Large 請求的 URI 過長(URI 通常為網(wǎng)址),服務(wù)器無法處理
16)415 Unsupported Media Type 服務(wù)器無法處理請求附帶的媒體格式
17)416 Requested range not satisfiable 客戶端請求的范圍無效
18)417 Expectation Failed 服務(wù)器無法滿足 Expect 的請求頭信息
- 5** 服務(wù)器錯誤,服務(wù)器在處理請求的過程中發(fā)生了錯誤
1)500 Internal Server Error 服務(wù)器內(nèi)部錯誤,無法完成請求
2)501 Not Implemented 服務(wù)器不支持請求的功能,無法完成請求
3)502 Bad Gateway 作為網(wǎng)關(guān)或者代理工作的服務(wù)器嘗試執(zhí)行請求時,從遠(yuǎn)程服務(wù)器接收到了一個無效的響應(yīng)
4)503 Service Unavailable 由于超載或系統(tǒng)維護(hù),服務(wù)器暫時的無法處理客戶端的請求。延時的長度可包含在服務(wù)器的 Retry-After 頭信息中
5)504 Gateway Time-out 充當(dāng)網(wǎng)關(guān)或代理的服務(wù)器,未及時從遠(yuǎn)端服務(wù)器獲取請求
6)505 HTTP Version not supported 服務(wù)器不支持請求的 HTTP 協(xié)議的版本,無法完成處理
本面試題為前端常考面試題,后續(xù)有機(jī)會繼續(xù)完善。我是歌謠,一個沉迷于故事的講述者。
歡迎一起私信交流。
“睡服“面試官系列之各系列目錄匯總(建議學(xué)習(xí)收藏)?
總結(jié)
以上是生活随笔為你收集整理的“约见”面试官系列之常见面试题第十六篇之http(建议收藏)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 微课计算机教学研究案例,《微课在中学信息
- 下一篇: 工作39:注意传参和返回