第一天
1.TCP協(xié)議為了數(shù)據(jù)送達(dá)采用了什么策略比肄?
TCP協(xié)議為了數(shù)據(jù)送達(dá)采用了三次握手的策略:“發(fā)送端先向接收端發(fā)送一個(gè)帶SYN標(biāo)志的數(shù)據(jù)包囊陡,接收端收到后在數(shù)據(jù)包上加個(gè)ACK標(biāo)志和收到數(shù)據(jù)包的信息發(fā)給發(fā)送端,發(fā)送端接收到信息后再發(fā)送帶有ACK的數(shù)據(jù)包”
2.URI與URL的區(qū)別和關(guān)系是妥色?絕對(duì)URI的格式內(nèi)容是?
URI是用字符串標(biāo)識(shí)某一互聯(lián)網(wǎng)資源鳍侣,URL標(biāo)識(shí)資源的地點(diǎn),URL是URI的子集
絕對(duì)URI的格式:協(xié)議名+登陸信息+服務(wù)器地址+端口號(hào)+文件路徑+查詢(xún)字符串+片段標(biāo)識(shí)符
3.http方法有哪些线衫?各自作用是惑折?
http方法:GET(獲取資源)惨驶;POST(傳輸實(shí)體主體);PUT(傳輸文件)屋确;HEAD(獲取報(bào)文首部);DELETE(刪除文件)焕数;OPTIONS(查詢(xún)支持的方法)刨啸;TRACE(追蹤路徑);CONNECT(要求用隧道協(xié)議連接代理)善已;LINK(建立與資源之間的聯(lián)系)雕拼;UNLINE(斷開(kāi)連接關(guān)系)其中LINK和UNLINK已被http/1.1廢棄
4.http是通過(guò)什么技術(shù)解決無(wú)狀態(tài)問(wèn)題粘招?該技術(shù)是如何解決?
http是通過(guò)Cookie技術(shù)解決無(wú)狀態(tài)問(wèn)題辑甜。
Cookie技術(shù)會(huì)根據(jù)從服務(wù)端發(fā)送的響應(yīng)報(bào)文里的Set_Cookie的首部字段信息袍冷,通知客戶端保存Cookie胡诗,當(dāng)下次客戶端再忘服務(wù)器發(fā)送請(qǐng)求時(shí),客戶端會(huì)自動(dòng)在請(qǐng)求報(bào)文里加入Cookie值再發(fā)送骇陈,服務(wù)端發(fā)現(xiàn)接收客戶端發(fā)送的Cookie后瑰抵,會(huì)檢查是從哪個(gè)客戶端發(fā)來(lái)的請(qǐng)求,然后對(duì)比服務(wù)器上的記錄婿崭,最后得到之前的狀態(tài)信息氓栈。
第二天
1.請(qǐng)求報(bào)文的結(jié)構(gòu)是婿着?響應(yīng)報(bào)文的結(jié)構(gòu)是幸海?
請(qǐng)求報(bào)文:請(qǐng)求行+請(qǐng)求頭+請(qǐng)求正文
請(qǐng)求行:請(qǐng)求方法+URL+協(xié)議版本
請(qǐng)求頭:請(qǐng)求首部字段+通用首部字段+實(shí)體首部字段
(常見(jiàn)的請(qǐng)求頭:
Host:接受請(qǐng)求的服務(wù)器地址物独,可以是IP:端口號(hào)氯葬,也可以是域名
User-Agent:發(fā)送請(qǐng)求的應(yīng)用程序名稱(chēng)
Connection:指定與連接相關(guān)的屬性帚称,如Connection:Keep-Alive
Accept-Charset:通知服務(wù)端可以發(fā)送的編碼格式
Accept-Encoding:通知服務(wù)端可以發(fā)送的數(shù)據(jù)壓縮格式
Accept-Language:通知服務(wù)端可以發(fā)送的語(yǔ)言)
請(qǐng)求正文:請(qǐng)求數(shù)據(jù)
響應(yīng)報(bào)文:狀態(tài)行+響應(yīng)頭+響應(yīng)正文
狀態(tài)行:協(xié)議版本+狀態(tài)碼+狀態(tài)碼描述
響應(yīng)頭:響應(yīng)首部字段+通用首部字段+實(shí)體首部字段
(常見(jiàn)的響應(yīng)頭:
Server:服務(wù)器應(yīng)用程序軟件的名稱(chēng)和版本
Content-Type:響應(yīng)正文的類(lèi)型(是圖片還是二進(jìn)制字符串)
Content-Length:響應(yīng)正文長(zhǎng)度
Content-Charset:響應(yīng)正文使用的編碼
Content-Encoding:響應(yīng)正文使用的數(shù)據(jù)壓縮格式)
響應(yīng)正文:響應(yīng)數(shù)據(jù)
第三天
1.常見(jiàn)http狀態(tài)碼及其含義是闯睹?
常見(jiàn)http狀態(tài)碼以1xx,2xx,3xx,4xx,5xx開(kāi)頭,其分別的意義是:
1xx: Informational(信息性狀態(tài)碼):接收的請(qǐng)求正在處理
2xx:Success(成功狀態(tài)碼):請(qǐng)求正常處理完畢
3xx:Redirection(重定向狀態(tài)碼):需要進(jìn)行附加操作以完成請(qǐng)求
4xx:Client Error(客戶端錯(cuò)誤狀態(tài)碼):服務(wù)器無(wú)法處理請(qǐng)求
5xx:Server Error(服務(wù)器錯(cuò)誤狀態(tài)碼):服務(wù)器處理請(qǐng)求錯(cuò)誤
具有代表性的狀態(tài)碼:
200:OK始花;客戶端發(fā)來(lái)的請(qǐng)求在服務(wù)器被正常處理
204:No Content孩锡;客戶端發(fā)來(lái)的請(qǐng)求在服務(wù)器被正常處理躬窜,但返回的響應(yīng)報(bào)文中不含實(shí)體的主體部分
206:Partial Content;客戶端進(jìn)行了范圍請(qǐng)求男韧,服務(wù)器成功執(zhí)行了這部分的GET請(qǐng)求
301:Moved Permanently默垄;請(qǐng)求的資源已被分配了新的URI,以后應(yīng)使用資源現(xiàn)在所指的URI
302:Found寡壮;請(qǐng)求的資源已被分配了新的URI讹弯,希望用戶本次能使用新的URI訪問(wèn)
303:See Other这溅;由于請(qǐng)求對(duì)應(yīng)的資源存在另一個(gè)URI,應(yīng)使用GET方法定向獲取的資源
304:Not Modified臭胜;客戶端發(fā)送附帶條件的請(qǐng)求時(shí)耸三,服務(wù)端允許請(qǐng)求訪問(wèn)資源,但未滿足條件
307:Temporary Redirect憨颠;與302有相同的含義
400:Bad Request积锅;請(qǐng)求報(bào)文中存在語(yǔ)法錯(cuò)誤
401:Unauthorized;發(fā)送的請(qǐng)求需要有通過(guò)HTTP認(rèn)證的認(rèn)證信息
403:Forbidden适篙;請(qǐng)求資源的訪問(wèn)被服務(wù)器拒絕了
404:Not Found箫爷;服務(wù)器上無(wú)法找到請(qǐng)求的資源
500:Internal Server Error;服務(wù)器端在執(zhí)行請(qǐng)求時(shí)發(fā)生了錯(cuò)誤
503:Service Unavailable丹喻;服務(wù)器暫時(shí)處于超負(fù)載或正在進(jìn)行停機(jī)維護(hù)
2.代理的工作機(jī)制是碍论?
代理相當(dāng)于在客戶端和服務(wù)端中當(dāng)一個(gè)中間人的作用柄慰,接收由客戶端發(fā)送的請(qǐng)求并轉(zhuǎn)發(fā)給服務(wù)端,同時(shí)也接受服務(wù)端返回的響應(yīng)并轉(zhuǎn)發(fā)給客戶端
同時(shí)代理有緩存代理藏研、透明代理和非透明代理
緩存代理(也叫緩存服務(wù)器):緩存代理會(huì)預(yù)先將資源的保存在代理服務(wù)器上概行,當(dāng)代理再次收到相同的資源的請(qǐng)求時(shí)凳忙,就可以不從源服務(wù)器上獲取資源,而是將之前緩存的資源作為響應(yīng)返回勤家。
透明代理和非透明代理:轉(zhuǎn)發(fā)請(qǐng)求或響應(yīng)時(shí)柳恐,不對(duì)報(bào)文做任何加工热幔,反之绎巨,對(duì)報(bào)文內(nèi)容進(jìn)行加工的就是非透明代理
3.緩存的作用是蠕啄?
緩存是指代理服務(wù)器或客戶端本地磁盤(pán)內(nèi)保存的資源副本,利用緩存可減少對(duì)源服務(wù)器的訪問(wèn)却嗡,因此也就減少了通信流量和通信時(shí)間
緩存是有有效期限的嘹承,緩存代理會(huì)向源服務(wù)器確認(rèn)資源的有效性叹卷,若判斷緩存失效,將會(huì)再次從源服務(wù)器上獲取“新”資源帝牡∶纱В客戶端緩存(瀏覽器緩存)也是如此
第四天
通用首部字段:
Cache-Control:控制緩存的行為【
請(qǐng)求指令:
no-cache(參數(shù):無(wú)):強(qiáng)制向源服務(wù)器再次驗(yàn)證
no-store(參數(shù):無(wú)):不緩存請(qǐng)求或響應(yīng)的任何內(nèi)容
Max-age=[秒](參數(shù):必需):響應(yīng)的最大Age值
Max-stale(=[秒])(參數(shù):可省略):接受已過(guò)期的響應(yīng)
Max-fresh=[秒](參數(shù):必需):期望在指定時(shí)間內(nèi)的響應(yīng)仍有效
No-transform(參數(shù):無(wú)):代理不可更改媒體類(lèi)型
Only-if-cached(參數(shù):無(wú)):從緩存獲取資源
Cache-extension: 新指令標(biāo)記(token);樣式:Cache-Control:privite,community=“UCI”
響應(yīng)指令:
public(參數(shù):無(wú)):可向任意方提供響應(yīng)的緩存
Private(參數(shù):可省略):僅向特定用戶返回響應(yīng)
No-cache(參數(shù):可省略):緩存前必須先確認(rèn)其有效性
No-store(參數(shù):無(wú)):不緩存請(qǐng)求或響應(yīng)的任何內(nèi)容
No-transform(參數(shù):無(wú)):代理不可更改媒體類(lèi)型
Must-revalidate(參數(shù):無(wú)):可緩存但必須再向服務(wù)器進(jìn)行確認(rèn)
Proxy-revalidate(參數(shù):無(wú)):要求中間緩存服務(wù)器對(duì)緩存的響應(yīng)有效性再進(jìn)行確認(rèn)
Max-age=[秒](參數(shù):必需):響應(yīng)的最大Age值
S-maxage=[秒](參數(shù):必需):公共緩存服務(wù)器響應(yīng)的最大Age值
Cache-extension:新指令標(biāo)記(token))罩息;樣式:Cache-Control:privite,community=“UCI”】
Connection:逐跳首部瓷炮、連接的管理
Date:創(chuàng)建報(bào)文的日期時(shí)間
Pragma:報(bào)文指令
Trailer:報(bào)文末端的首部一覽
Transfer-Encoding:指定報(bào)文主體的傳輸編碼方式
Upgrade:升級(jí)為其他協(xié)議
Via:代理服務(wù)器的相關(guān)信息
Warning:錯(cuò)誤通知
1.http協(xié)議請(qǐng)求頭作用是什么娘香?幾個(gè)常見(jiàn)的請(qǐng)求頭办龄?
請(qǐng)求頭是從客戶端向服務(wù)器發(fā)送請(qǐng)求報(bào)文時(shí)使用的首部,補(bǔ)充了請(qǐng)求的附加內(nèi)容诀姚、客戶端信息玷禽、響應(yīng)內(nèi)容相關(guān)優(yōu)先級(jí)等信息
常見(jiàn)的請(qǐng)求頭:
Accept:用戶代理可處理的媒體類(lèi)型
Accept-Charset:優(yōu)先的字符集
Accept-Encoding:優(yōu)先的內(nèi)容編碼
Accept-Language:優(yōu)先的語(yǔ)言
Authorization:Web認(rèn)證信息
Expect:期待服務(wù)器的特定行為
From:用戶的電子郵箱地址
Host:請(qǐng)求資源所在服務(wù)器
If-Match:比較實(shí)體標(biāo)記(ETag)
If-Modified-Since:比較資源的更新時(shí)間
If-None-Match:比較實(shí)體標(biāo)記(與If-Match相反)
If-Range:資源未更新時(shí)發(fā)送實(shí)體Byte的范圍請(qǐng)求
If-Unmodified-Since:比較資源的更新時(shí)間(與If-Modified-Since相反)
Max-Forwards:最大傳輸逐跳數(shù)
Proxy-Authorization:代理服務(wù)器要求客戶端的認(rèn)證信息
Range:實(shí)體的字節(jié)范圍請(qǐng)求
Referer:對(duì)請(qǐng)求種URI的原始協(xié)助力
TE:傳輸編碼的優(yōu)先級(jí)
User-Agent:HTTP客戶端程序的信息
2.http協(xié)議響應(yīng)頭作用是什么?幾個(gè)常見(jiàn)的響應(yīng)頭糯笙?
響應(yīng)頭是從服務(wù)端向客戶端返回響應(yīng)報(bào)文的首部撩银,補(bǔ)充了響應(yīng)的附加內(nèi)容、也會(huì)要求客戶端附加額外的內(nèi)容信息
常見(jiàn)的響應(yīng)頭:
Accept-Range:是否接受字節(jié)范圍請(qǐng)求
Age:推算資源創(chuàng)建經(jīng)過(guò)時(shí)間
ETag:資源的匹配信息
Location:令客戶端重定向至指定URI
Proxy-Authenticate:代理服務(wù)器對(duì)客戶端的認(rèn)證信息
Retry-After:對(duì)再次發(fā)起請(qǐng)求的時(shí)機(jī)要求
Server:HTTP服務(wù)器的安裝信息
Vary:代理服務(wù)器緩存的管理信息
WWW-Authenticate:服務(wù)器對(duì)客戶端的認(rèn)證信息
3.實(shí)體首部字段的作用是什么够庙?幾個(gè)常見(jiàn)的首部字段耘眨?
實(shí)體首部字段是針對(duì)請(qǐng)求報(bào)文和響應(yīng)報(bào)文的實(shí)體部分使用的信息境肾,作用是用于補(bǔ)充內(nèi)容的更新時(shí)間等與實(shí)體相關(guān)的信息
常見(jiàn)的首部字段:
Allow:用于通知客戶端能夠支持Request-URI指定資源的所有HTTP方法,當(dāng)服務(wù)器收到不支持的HTTP方法時(shí)偶宫,會(huì)以狀態(tài)碼405作為響應(yīng)返回环鲤,同時(shí)還會(huì)把所有能支持的HTTP方法寫(xiě)入首部字段Allow返回。
Content-Encoding:告知客戶端服務(wù)器對(duì)實(shí)體的主體部分選用的內(nèi)容編碼方式结闸。內(nèi)容編碼方式指在不丟失實(shí)體信息的前提下所進(jìn)行的壓縮酒朵,主要采用4種內(nèi)容編碼方式:1.gzip;2.compress结耀;3.deflate匙铡;4.identity
Content-Language:實(shí)體主體的自然語(yǔ)言
Content-Length:實(shí)體主體的大小
Content-Location:替代對(duì)應(yīng)資源的URI
Content-MD5:實(shí)體主體的報(bào)文摘要
Content-Range:實(shí)體主體的位置范圍
Content-Type:實(shí)體主體的媒體類(lèi)型
Expires:實(shí)體主體過(guò)期的日期時(shí)間
Last-Modified:資源的最后修改日期時(shí)間
第五天
1.https的優(yōu)點(diǎn)是什么?
使用HTTPS協(xié)議可認(rèn)證用戶和服務(wù)器黑毅,確保數(shù)據(jù)發(fā)送到正確的客戶機(jī)和服務(wù)器矿瘦。由于HTTPS是將HTTP+加密+認(rèn)證+完整性保護(hù)形成的,因此HTTPS協(xié)議由SSL+HTTP協(xié)議構(gòu)建的可進(jìn)行加密傳輸缚去、身份認(rèn)證的網(wǎng)絡(luò)協(xié)議,要比http協(xié)議安全枕荞,可防止數(shù)據(jù)在傳輸過(guò)程中不被竊取搞动、改變,確保數(shù)據(jù)的完整性玉控;
2.https的缺點(diǎn)是什么狮惜?
相同網(wǎng)絡(luò)環(huán)境下,HTTPS協(xié)議比HTTP網(wǎng)絡(luò)負(fù)載可能會(huì)慢到2到100倍虱而,另外SSL必須進(jìn)行加密處理开泽,在服務(wù)器和客戶端都需要進(jìn)行加密和解密的運(yùn)算處理。比HTTP會(huì)更多地消耗服務(wù)器和客戶端的硬件資源惠呼,導(dǎo)致負(fù)載增強(qiáng)峦耘。
HTTPS協(xié)議的安全是有范圍的,在黑客攻擊泣崩、拒絕服務(wù)攻擊洛口、服務(wù)器劫持等方面幾乎起不到什么作用。最關(guān)鍵的买优,SSL 證書(shū)的信用鏈體系并不安全。特別是在某些國(guó)家可以控制 CA 根證書(shū)的情況下烘跺,中間人攻擊一樣可行葵陵。
從成本方面看1. SSL的專(zhuān)業(yè)證書(shū)需要購(gòu)買(mǎi)脱篙,功能越強(qiáng)大的證書(shū)費(fèi)用越高伤柄。個(gè)人網(wǎng)站、小網(wǎng)站可以選擇入門(mén)級(jí)免費(fèi)證書(shū)秤朗;2. SSL 證書(shū)通常需要綁定 固定IP笔喉,為服務(wù)器增加固定IP會(huì)增加一定費(fèi)用;3. HTTPS 連接服務(wù)器端資源占用高較高多作谭,相同負(fù)載下會(huì)增加帶寬和服務(wù)器投入成本;
3.http常用的認(rèn)證方法有哪些奄毡?
http常用的認(rèn)證方法有:BASIC認(rèn)證、DIGEST認(rèn)證锐秦、SSL客戶端認(rèn)證盗忱、FormBase認(rèn)證
BASIC認(rèn)證:
是從HTTP/1.0就定義的認(rèn)證方式,是Web服務(wù)器與通信客戶端之間進(jìn)行的認(rèn)證方式(客戶端發(fā)送請(qǐng)求斤葱,服務(wù)端返回401要求認(rèn)證揖闸,客戶端將用戶id和密碼以Base64方式編碼后發(fā)送,服務(wù)器認(rèn)證成功后返回200成功狀態(tài)碼失敗則返回401)
DIGEST認(rèn)證:
為彌補(bǔ)Basic認(rèn)證存在的弱點(diǎn)衩茸,從HTTP/1.1起就有了DIGEST認(rèn)證贮泞,其同樣使用質(zhì)詢(xún)/響應(yīng)的方式幔烛,但不會(huì)像BASIC認(rèn)證那樣直接發(fā)送明文密碼饿悬。(客戶端發(fā)送請(qǐng)求聚霜,服務(wù)端發(fā)送臨時(shí)的質(zhì)詢(xún)碼(隨機(jī)的)和401狀態(tài)碼要求認(rèn)證,客戶端發(fā)送摘要以及質(zhì)詢(xún)碼計(jì)算出的響應(yīng)碼弟劲,服務(wù)器認(rèn)證成功后返回200成功狀態(tài)碼失敗則返回401)
SSL客戶端認(rèn)證:
是借由HTTPS的客戶端證書(shū)完成認(rèn)證的方式姥芥。憑借客戶端證書(shū)認(rèn)證,服務(wù)器可確認(rèn)訪問(wèn)是否來(lái)自己登陸的客戶端庸追。