Android Mock Interview (1) -- HTTP

之所以把專題叫做Mock Interview 是因?yàn)樽罱约阂苍跍?zhǔn)備面試,在復(fù)習(xí)的時(shí)候感覺光自己看知識(shí)點(diǎn)很容易看完就忘,因此我想通過給自己做一個(gè)模擬面試的形式把面試官可能問到的問題都記錄下來的烁,并附上解答,最終達(dá)到文章寫完就好像經(jīng)歷了一次面試的效果神妹。

今天的主題是HTTP鞋仍。從網(wǎng)上的面經(jīng)來看,HTTP協(xié)議在Android面試中出現(xiàn)頻率還是挺高的磕洪,下面就來開始我們的Mock Interview吭练。

1. 說一下HTTP協(xié)議的格式

HTTP 報(bào)文分為請(qǐng)求和響應(yīng)報(bào)文。
請(qǐng)求報(bào)文由3部分組成:

  • 請(qǐng)求行:包括請(qǐng)求方法析显,URI和HTTP版本號(hào)
  • 請(qǐng)求首部字段
  • 請(qǐng)求內(nèi)容實(shí)體

響應(yīng)報(bào)文也是3部分:

  • 狀態(tài)行:包括HTTP版本號(hào)鲫咽,狀態(tài)碼和原因短語
  • 響應(yīng)首部字段
  • 響應(yīng)內(nèi)容實(shí)體

2. 說幾個(gè)HTTP方法

(這里我覺得不能只是答GET,POST等等方法名谷异,最好把各個(gè)方法的作用或使用場(chǎng)景說一下)

  • GET:用于請(qǐng)求訪問已經(jīng)被URI標(biāo)識(shí)的資源分尸,可以通過URL傳參給服務(wù)器
  • POST:主要功能與GET方法類似,但是比GET方法安全歹嘹,因?yàn)閿?shù)據(jù)是放在請(qǐng)求實(shí)體中傳遞給服務(wù)器的箩绍,用戶不可見。一般推薦用POST方法
  • PUT:用于傳輸文件尺上,報(bào)文主題中包含文件內(nèi)容材蛛,保存到對(duì)應(yīng)的URI位置
  • HEAD:獲得響應(yīng)報(bào)文首部。與GET方法類似怎抛,但是不返回報(bào)文實(shí)體卑吭,一般用于驗(yàn)證URI是否有效
  • DELETE:與PUT方法相反,刪除對(duì)應(yīng)URI位置的文件
  • OPTIONS:查詢相應(yīng)URI支持的HTTP方法

3. 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è)過程用戶是不可見的。

區(qū)別三:

  • get傳輸數(shù)據(jù)量小件已,因?yàn)槭躑RL長(zhǎng)度限制笋额,但是效率高。
  • post可以傳輸大量數(shù)據(jù)篷扩,所以上傳文件時(shí)只能用post

區(qū)別四:

  • get是不安全的兄猩,因?yàn)閁RL是可見的,可能會(huì)泄漏私密信息鉴未。
  • post 較get安全性高

區(qū)別五:

  • get方式只能支持ASCII字符枢冤,向服務(wù)器傳的中文字符可能會(huì)亂碼。
  • post支持標(biāo)準(zhǔn)字符集铜秆,可以正確傳遞中文字符淹真。

4. 說一下HTTP 1.0 和 1.1 的區(qū)別

  • 在HTTP1.0中,當(dāng)連接建立后连茧,客戶端發(fā)送一個(gè)請(qǐng)求核蘸,服務(wù)器端返回一個(gè)信息后就關(guān)閉了連接,當(dāng)瀏覽器下次要請(qǐng)求時(shí)又要重新建立連接啸驯。這種不斷建立連接的方式會(huì)給服務(wù)器造成很大負(fù)擔(dān)客扎,也會(huì)延長(zhǎng)響應(yīng)時(shí)間。
  • 在HTTP1.1中節(jié)省了2點(diǎn)開銷坯汤。1. 引入了持續(xù)連接的概念虐唠,建立這種連接后,客戶端可以向服務(wù)端發(fā)送多條請(qǐng)求惰聂,而不必每次請(qǐng)求都重新連接。2. 請(qǐng)求管線化咱筛,客戶端可以連續(xù)發(fā)送多條請(qǐng)求而不必等待之前請(qǐng)求返回搓幌。通過這兩點(diǎn)縮短請(qǐng)求的時(shí)間,節(jié)約資源開銷迅箩。

5. 說說HTTP狀態(tài)碼

狀態(tài)碼的分類:
1** 信息溉愁,服務(wù)器收到請(qǐng)求,需要請(qǐng)求者繼續(xù)執(zhí)行操作
2** 成功饲趋,操作被成功接收并處理
3** 重定向拐揭,需要進(jìn)一步的操作以完成請(qǐng)求
4** 客戶端錯(cuò)誤撤蟆,請(qǐng)求包含語法錯(cuò)誤或無法完成請(qǐng)求
5** 服務(wù)器錯(cuò)誤,服務(wù)器在處理請(qǐng)求的過程中發(fā)生了錯(cuò)誤

常見的狀態(tài)碼有:
200:請(qǐng)求被正常處理
204:請(qǐng)求被受理但沒有資源可以返回
206:客戶端只是請(qǐng)求資源的一部分堂污,服務(wù)器只對(duì)請(qǐng)求的部分資源執(zhí)行GET方法家肯,相應(yīng)報(bào)文中通過Content-Range指定范圍的資源。
301:永久性重定向盟猖。表示請(qǐng)求的資源已經(jīng)被分配了新的URI讨衣。
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ù)器正忙

6. HTTP 協(xié)議首部字段有哪幾種辆亏?

首部字段大致分為以下4中:
(1) 通用首部字段(請(qǐng)求報(bào)文與響應(yīng)報(bào)文都會(huì)使用的首部字段)
Date:創(chuàng)建報(bào)文時(shí)間
Connection:連接的管理
Cache-Control:緩存的控制
Transfer-Encoding:報(bào)文主體的傳輸編碼方式

(2) 請(qǐng)求首部字段(請(qǐng)求報(bào)文會(huì)使用的首部字段)
Host:請(qǐng)求資源所在服務(wù)器
Accept:可處理的媒體類型
Accept-Charset:可接收的字符集
Accept-Encoding:可接受的內(nèi)容編碼
Accept-Language:可接受的自然語言
If-Modified-Since: 確認(rèn)代理或客戶端擁有的本地資源的有效性。

(3) 響應(yīng)首部字段(響應(yīng)報(bào)文會(huì)使用的首部字段)
Accept-Ranges:可接受的字節(jié)范圍
Location:令客戶端重新定向到的URI
Server:HTTP服務(wù)器的安裝信息
Retry-After: 告知客戶端應(yīng)該在多久之后再次發(fā)送請(qǐng)求鳖目。主要配合狀態(tài)碼503 Service Unavailable響應(yīng)扮叨,或3xx redirect響應(yīng)一起使用

(4) 實(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í)使用

7. 在瀏覽器中輸入baidu.com后都經(jīng)歷了哪些協(xié)議领迈?

  1. DNS — 解析出域名對(duì)應(yīng)的IP地址
  2. HTTP — 生成針對(duì)目標(biāo)web服務(wù)器的請(qǐng)求報(bào)文
  3. TCP — 將HTTP請(qǐng)求報(bào)文分割成報(bào)文段彻磁,把每個(gè)報(bào)文段可靠地傳給對(duì)方(三次握手建立連接)
  4. IP — 搜索對(duì)方的地址,一邊中轉(zhuǎn)一邊傳送

(我知道的就這幾個(gè)了狸捅,歡迎大神補(bǔ)充)

以上是一部分HTTP協(xié)議相關(guān)的考點(diǎn)衷蜓,歡迎各位指正。

Reference

[1] 《圖解HTTP》 -- 【日】上野宣

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末尘喝,一起剝皮案震驚了整個(gè)濱河市磁浇,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌朽褪,老刑警劉巖置吓,帶你破解...
    沈念sama閱讀 216,692評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異缔赠,居然都是意外死亡衍锚,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,482評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門嗤堰,熙熙樓的掌柜王于貴愁眉苦臉地迎上來戴质,“玉大人,你說我怎么就攤上這事「娼常” “怎么了戈抄?”我有些...
    開封第一講書人閱讀 162,995評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)后专。 經(jīng)常有香客問我划鸽,道長(zhǎng),這世上最難降的妖魔是什么行贪? 我笑而不...
    開封第一講書人閱讀 58,223評(píng)論 1 292
  • 正文 為了忘掉前任漾稀,我火速辦了婚禮,結(jié)果婚禮上建瘫,老公的妹妹穿的比我還像新娘崭捍。我一直安慰自己,他們只是感情好啰脚,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,245評(píng)論 6 388
  • 文/花漫 我一把揭開白布殷蛇。 她就那樣靜靜地躺著,像睡著了一般橄浓。 火紅的嫁衣襯著肌膚如雪粒梦。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,208評(píng)論 1 299
  • 那天荸实,我揣著相機(jī)與錄音匀们,去河邊找鬼。 笑死准给,一個(gè)胖子當(dāng)著我的面吹牛泄朴,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播露氮,決...
    沈念sama閱讀 40,091評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼祖灰,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了畔规?” 一聲冷哼從身側(cè)響起局扶,我...
    開封第一講書人閱讀 38,929評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎叁扫,沒想到半個(gè)月后三妈,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,346評(píng)論 1 311
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡陌兑,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,570評(píng)論 2 333
  • 正文 我和宋清朗相戀三年沈跨,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片兔综。...
    茶點(diǎn)故事閱讀 39,739評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出软驰,到底是詐尸還是另有隱情涧窒,我是刑警寧澤,帶...
    沈念sama閱讀 35,437評(píng)論 5 344
  • 正文 年R本政府宣布锭亏,位于F島的核電站纠吴,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏慧瘤。R本人自食惡果不足惜戴已,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,037評(píng)論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望锅减。 院中可真熱鬧糖儡,春花似錦、人聲如沸怔匣。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,677評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽每瞒。三九已至金闽,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間剿骨,已是汗流浹背代芜。 一陣腳步聲響...
    開封第一講書人閱讀 32,833評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留浓利,地道東北人挤庇。 一個(gè)月前我還...
    沈念sama閱讀 47,760評(píng)論 2 369
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像荞膘,于是被迫代替她去往敵國(guó)和親罚随。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,647評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容