主頁 >  其他 > HTTP協議經典面試題整理及答案詳解

HTTP協議經典面試題整理及答案詳解

2020-09-13 13:16:18 其他

無論你是Java、PHP開發者,還是運維人員,只要從事互聯網行業,面試時都可能被問到HTTP協議相關知識,歷時多天的嘔心瀝血,為你總結了HTTP協議的經典面試題,由于涉及內容比較繁雜不方便記憶,建議收藏起來,時不時看一遍或者面試前突擊復習,

什么是HTTP報文?

HTTP報文是HTTP協議在客戶端和服務端之間傳送的資料塊,

HTTP報文由哪三部分組成?

HTTP報文由起始行(start line)、頭部(header)和主體(body)三部分組成,起始行是對報文進行的描述,頭部包含報文的一些屬性,主體包含報文的資料(可選,非必選),

歡迎關注微信公眾號:萬貓學社,每周一分享Java技術干貨,

HTTP報文分為哪兩類?

HTTP報文可以分為:請求報文(request message)和回應報文(response message),當客戶端向服務端發送請求時,就是發送請求報文;當服務端向客戶端回傳資料時,就是回傳回應報文,比如,獲取一個文本需要的請求報文和回應報文:

HTTP常見的請求方法有哪些?

方法 描述 是否包含主體
GET 從服務端獲取指定資訊
POST 向服務端發送待處理的資料
HEAD 從服務端獲取指定資訊的頭部
PUT 向服務端發送資料并替換服務端上指定的資料
OPTIONS 查詢針對請求URL指定的資源支持
DELETE 從服務端洗掉指定資料
TRACE 沿著目標資源的路徑執行訊息環回測驗

HTTP的狀態碼分為哪幾類?

整體范圍 已定義范圍 分類
100~199 100~101 資訊提示
200~299 100~206 成功
300~399 300~305 重定向
400~499 400~415 客戶端錯誤
500~599 500~505 服務端錯誤

歡迎關注微信公眾號:萬貓學社,每周一分享Java技術干貨,

HTTP常見的狀態碼有哪些?

狀態碼 原因短語 含義
100 Continue 說明收到了請求的初始部分,請客戶端繼續,
101 Switching Protocols 說明服務端正在根據客戶端的指定,將協議切換成Update頭部所列的協議,
200 OK 請求沒有問題,主體包含了所請求的資料,
201 Created 用于在服務端創建資料的請求(比如PUT),Location頭部給出了創建資料的URL,
202 Accepted 請求已經被接受,但服務端還沒有對其執行任何動作,
203 Non-Authoritative Information 資料已經正常地回傳,但一些回應報文頭部可能不正確,
204 No Content 回應報文中包含起始行和頭部,沒有主體部位,客戶端應該繼續顯示原來的資料,
205 Reset Content 仍然沒有主體部分,但客戶端應該清除它所顯示的資料,
206 Partial Content 成功執行了一部分或者一個范圍內的請求,
300 Multiple Choices 客戶端請求了一個實際指向多個資源的URL,服務端可以在Location頭部包含首選URL,
301 Moved Permanently 請求的URL已經被移除,回應報文中的Location頭部包含現在資源的URL,
302 Found 類似于301,但新的URL應該被視為臨時性的,將來的請求仍應是老的URL,
303 See Other 類似于301,但主要目的是允許POST請求的回應將客戶端定向到某個資源上,
304 Not Modified 客戶端有緩沖的檔案并發出了一個條件性的請求時,服務端告知客戶端,原來緩沖的資料還可以繼續使用,
305 Use Proxy 用來說明必須通過代理進行訪問,代理的位置在Location頭部給出,
306 - 未使用
307 Temporary Redirect 類似于301,但客戶端應該使用Location頭部給出的URL臨時請求,將來的請求仍應是老的URL,
400 Bad Request 客戶端發出的是錯誤請求,服務器無法理解,
401 Unauthorized 請求要求客戶端的身份認證
402 Payment Required 保留,以作將來使用
403 Forbidden 服務端理解客戶端的請求,但是拒絕執行此請求,
404 Not Found 服務端無法找到客戶端所請求的URL,
405 Method Not Allowed 服務端不支持客戶端請求的方法,
406 Not Acceptable 服務端無法根據客戶端請求的型別完成請求,
407 Proxy Authentication Required 類似于401,但用于要求對資源進行認證的代理服務器,
408 Request Timeout 服務端等待客戶端發送的請求時間過長,服務端可以回應此狀態碼,并關閉連接,
409 Conflict 客戶端的請求可以在資源上引發一些沖突,服務端可以發送此狀態碼,
410 Gone 類似于404,但是服務端曾經擁有過此資源,
411 Length Required 服務端要求客戶端的請求報文中包含Content-Length頭部時,使用此狀態碼,
412 Precondition Failed 客戶端發起了條件請求,并且其中一個條件失敗時,使用此狀態碼,
413 Request Entity Too Large 客戶端發送的主體部分比服務端能夠或者期望處理的要大時,使用此狀態碼,
414 Request URI Too Large 客戶端發送的請求URI比服務端能夠或者期望處理的要長時,使用此狀態碼,
415 Unsupported Media Type 服務端無法理解或無法支持客戶端所發的內容型別是,使用此狀態碼,
416 Requested Range Not Satisfiable 客戶端請求指定資源的范圍無效或無法滿足,
417 Expectation Failed 服務端無法滿足客戶端的Expect頭部,
500 Internal Server Error 服務端發生內部錯誤,無法完成請求,
501 Not Implemented 服務端不支持客戶端的請求,無法完成請求,
502 Bad Gateway 作為網關或代理的服務器,從遠端服務端接收到了一個無效的請求,
503 Service Unavailable 用來說明服務端現在無法為請求提供服務,但是將來可以,什么時候資源會變為可用可包含在服務端的Retry-After頭部中,
504 Gateway Timeout 類似于408,只是作為網關或代理的服務器,未及時從遠端服務端獲取請求,
505 HTTP Version Not Supported 服務端不支持請求的HTTP協議的版本,無法完成處理,

歡迎關注微信公眾號:萬貓學社,每周一分享Java技術干貨,

HTTP常見的頭部資訊有哪些?

請求報文的頭部資訊

Header 含義 示例
Accept 指定客戶端能夠接收的內容型別, Accept: text/html,application/xhtml+xml
Accept-Charset 客戶端可以接受的字符編碼集, Accept-Charset: GBK
Accept-Encoding 客戶端可以支持的服務端回傳內容壓縮編碼型別, Accept-Encoding: gzip, deflate
Accept-Language 客戶端可接受的語言 Accept-Language: zh-CN,zh
Authorization HTTP授權的授權證書 Authorization: Basic b25lbW9yZSUzQSV1NEUwNyV1NzMyQiV1NUI2NiV1NzkzRQ==
Cache-Control 指定請求和回應遵循的快取機制 Cache-Control: no-cache
Connection 表示是否需要持久連接, Connection: keep-alive
Cookie HTTP請求發送時,會把保存在該請求域名下的所有cookie值一起發送給服務端, Cookie: onemore=萬貓學社;
Content-Length 請求的內容長度 Content-Length: 1024
Content-Type 請求的與物體對應的MIME資訊 Content-Type: application/x-www-form-urlencoded
Date 請求發送的日期和時間 Date: Mon, 16 Mar 2020 11:11:11 GMT
Expect 請求的特定的服務端行為 Expect: 100-continue
Host 指定請求的服務端的域名和埠號 Host: onemore.study
If-Match 只有請求內容與物體相匹配才獲取該資料 If-Match: "306073f04224cbd114f14693c272f6a0"
If-Modified-Since 如果請求的部分在指定時間之后被修改則請求成功, If-Modified-Since: Mon, 16 Mar 2020 11:11:11 GMT
If-None-Match 只有請求內容與物體不匹配才獲取該資料, If-None-Match: "306073f04224cbd114f14693c272f6a0"
If-Range 允許對資料的某個范圍進行條件請求, If-Range: "306073f04224cbd114f14693c272f6a0"
If-Unmodified-Since 只有在指定時間之后未被修改才請求成功, If-Unmodified-Since: Mon, 16 Mar 2020 11:11:11 GMT
Max-Forwards 將請求轉發給其他代理或網關的最大次數, Max-Forwards: 10
Pragma 用來包含實作特定的指令 Pragma: no-cache
Proxy-Authorization 連接到代理的授權證書 Proxy-Authorization: Basic b25lbW9yZSUzQSV1NEUwNyV1NzMyQiV1NUI2NiV1NzkzRQ==
Range 只請求資料的一部分,指定范圍 Range: bytes=512-1024
Referer 先前資源的URL Referer: http://onemore.study
TE 客戶端愿意接受的傳輸編碼 TE: trailers,deflate;q=0.5
User-Agent 包含發出請求的客戶端資訊 User-Agent: Mozilla/5.0 (Windows NT 6.2; Win64; x64; rv:65.0)

回應報文的頭部資訊

Header 含義 示例
Age 從原始服務端到代理快取形成的估算時間(以秒計,非負) Age: 12
Allow 對某資源的有效的請求行為 Allow: GET, POST
Cache-Control 告訴所有的快取機制是否可以快取及哪種型別, Cache-Control: no-cache
Content-Encoding 服務端支持的回傳內容壓縮編碼型別, Content-Encoding: gzip
Content-Language 回應體的語言 Content-Language: zh-CN,zh
Content-Length 回應體的長度 Content-Length: 1024
Content-Location 請求資源實際所處位置 Content-Location: /index.do
Content-MD5 回傳資源的MD5校驗值 Content-MD5: 306073f04224cbd114f14693c272f6a0
Content-Range 在整個回傳資源中本部分的位元組位置 Content-Range: bytes 512-1024
Content-Type 回傳資源的物件型別 Content-Type: text/html; charset=GBK
Date 原始服務端訊息發出的時間 Date: Mon, 16 Mar 2020 11:11:11 GMT
ETag 請求變數的物體標簽的當前值 ETag: "306073f04224cbd114f14693c272f6a0"
Expires 回應過期的日期和時間 Expires: Mon, 16 Mar 2020 11:11:11 GMT
Last-Modified 請求資源的最后修改時間 Last-Modified: Mon, 16 Mar 2020 11:11:11 GMT
Location 告知客戶端資源的實際URL Location: http://onemore.study
Pragma 包括實作特定的指令 Pragma: no-cache
Proxy-Authenticate 它指出認證方案和可應用到代理的該URL上的引數 Proxy-Authenticate: Basic
Retry-After 如果物體暫時不可取,通知客戶端在指定時間之后再次嘗試 Retry-After: 60
Server 服務端軟體名稱 Server: Microsoft-IIS/8.5
Set-Cookie 設定Http Cookie Set-Cookie: onemore=萬貓學社;
Transfer-Encoding 檔案傳輸編碼 Transfer-Encoding:chunked
Vary 告知下游代理是使用快取回應還是從原始服務端請求 Vary: *
Via 告知代理客戶端回應是通過哪里發送的 Via: HTTP/1.1 GWA
WWW-Authenticate 表明客戶端請求物體應該使用的授權方案 WWW-Authenticate: Basic

微信公眾號:萬貓學社

微信掃描二維碼

獲得更多Java技術干貨

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/24689.html

標籤:其他

上一篇:面試之并發的問題

下一篇:我的2019計算機保研夏令營/預推免經歷【中南,北理工,北航,南大,浙大】

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • 2023年最新微信小程式抓包教程

    01 開門見山 隔一個月發一篇文章,不過分。 首先回顧一下《微信系結手機號資料庫被脫庫事件》,我也是第一時間得知了這個訊息,然后跟蹤了整件事情的經過。下面是這起事件的相關截圖以及近日流出的一萬條資料樣本: 個人認為這件事也沒什么,還不如關注一下之前45億快遞資料查詢渠道疑似在近日復活的訊息。 訊息是 ......

    uj5u.com 2023-04-20 08:48:24 more
  • web3 產品介紹:metamask 錢包 使用最多的瀏覽器插件錢包

    Metamask錢包是一種基于區塊鏈技術的數字貨幣錢包,它允許用戶在安全、便捷的環境下管理自己的加密資產。Metamask錢包是以太坊生態系統中最流行的錢包之一,它具有易于使用、安全性高和功能強大等優點。 本文將詳細介紹Metamask錢包的功能和使用方法。 一、 Metamask錢包的功能 數字資 ......

    uj5u.com 2023-04-20 08:47:46 more
  • vulnhub_Earth

    前言 靶機地址->>>vulnhub_Earth 攻擊機ip:192.168.20.121 靶機ip:192.168.20.122 參考文章 https://www.cnblogs.com/Jing-X/archive/2022/04/03/16097695.html https://www.cnb ......

    uj5u.com 2023-04-20 07:46:20 more
  • 從4k到42k,軟體測驗工程師的漲薪史,給我看哭了

    清明節一過,盲猜大家已經無心上班,在數著日子準備過五一,但一想到銀行卡里的余額……瞬間心情就不美麗了。最近,2023年高校畢業生就業調查顯示,本科畢業月平均起薪為5825元。調查一出,便有很多同學表示自己又被平均了。看著這一資料,不免讓人想到前不久中國青年報的一項調查:近六成大學生認為畢業10年內會 ......

    uj5u.com 2023-04-20 07:44:00 more
  • 最新版本 Stable Diffusion 開源 AI 繪畫工具之中文自動提詞篇

    🎈 標簽生成器 由于輸入正向提示詞 prompt 和反向提示詞 negative prompt 都是使用英文,所以對學習母語的我們非常不友好 使用網址:https://tinygeeker.github.io/p/ai-prompt-generator 這個網址是為了讓大家在使用 AI 繪畫的時候 ......

    uj5u.com 2023-04-20 07:43:36 more
  • 漫談前端自動化測驗演進之路及測驗工具分析

    隨著前端技術的不斷發展和應用程式的日益復雜,前端自動化測驗也在不斷演進。隨著 Web 應用程式變得越來越復雜,自動化測驗的需求也越來越高。如今,自動化測驗已經成為 Web 應用程式開發程序中不可或缺的一部分,它們可以幫助開發人員更快地發現和修復錯誤,提高應用程式的性能和可靠性。 ......

    uj5u.com 2023-04-20 07:43:16 more
  • CANN開發實踐:4個DVPP記憶體問題的典型案例解讀

    摘要:由于DVPP媒體資料處理功能對存放輸入、輸出資料的記憶體有更高的要求(例如,記憶體首地址128位元組對齊),因此需呼叫專用的記憶體申請介面,那么本期就分享幾個關于DVPP記憶體問題的典型案例,并給出原因分析及解決方法。 本文分享自華為云社區《FAQ_DVPP記憶體問題案例》,作者:昇騰CANN。 DVPP ......

    uj5u.com 2023-04-20 07:43:03 more
  • msf學習

    msf學習 以kali自帶的msf為例 一、msf核心模塊與功能 msf模塊都放在/usr/share/metasploit-framework/modules目錄下 1、auxiliary 輔助模塊,輔助滲透(埠掃描、登錄密碼爆破、漏洞驗證等) 2、encoders 編碼器模塊,主要包含各種編碼 ......

    uj5u.com 2023-04-20 07:42:59 more
  • Halcon軟體安裝與界面簡介

    1. 下載Halcon17版本到到本地 2. 雙擊安裝包后 3. 步驟如下 1.2 Halcon軟體安裝 界面分為四大塊 1. Halcon的五個助手 1) 影像采集助手:與相機連接,設定相機引數,采集影像 2) 標定助手:九點標定或是其它的標定,生成標定檔案及內參外參,可以將像素單位轉換為長度單位 ......

    uj5u.com 2023-04-20 07:42:17 more
  • 在MacOS下使用Unity3D開發游戲

    第一次發博客,先發一下我的游戲開發環境吧。 去年2月份買了一臺MacBookPro2021 M1pro(以下簡稱mbp),這一年來一直在用mbp開發游戲。我大致分享一下我的開發工具以及使用體驗。 1、Unity 官網鏈接: https://unity.cn/releases 我一般使用的Apple ......

    uj5u.com 2023-04-20 07:40:19 more