一些關(guān)于HTTP的學(xué)習(xí)記錄

一個非常好的學(xué)習(xí)HTTP的網(wǎng)站:
https://developer.mozilla.org/zh-CN/docs/Web/HTTP

第一部分

  1. HTTP:超文本傳輸協(xié)議

2.URL:統(tǒng)一資源定位符。
URI:統(tǒng)一資源標(biāo)識符嚷缭。
URL < URI

3.1995年IE瀏覽器,2004年Mozilla發(fā)布Firefox

4.TCP/IP(從高往下)
應(yīng)用層:如FTP,DNS,HTTP
傳輸層:TCP,UDP
網(wǎng)絡(luò)層:處理流動的數(shù)據(jù)包漱抓,IP協(xié)議
數(shù)據(jù)鏈路層:處理連接網(wǎng)絡(luò)的硬件,如操作系統(tǒng)昭伸,網(wǎng)卡彼绷,光纖
每經(jīng)過一層,都會增加一個首部纷宇,如TCP首部

5.IP協(xié)議將數(shù)據(jù)傳到對方需要2個條件,IP地址(會變)和MAC地址

6.APP協(xié)議:中轉(zhuǎn)時蛾方,下一站中轉(zhuǎn)設(shè)備的MAC地址是用來搜索的目標(biāo)像捶。

7.路由選擇
TCP的三次握手策略抚吠,為的是準(zhǔn)確無誤的獎數(shù)據(jù)送達(dá)
握手過程使用TCP的標(biāo)記(flag)----SYN和ACK
三次握手:其實指的是三次數(shù)據(jù)傳輸沉眶,發(fā)送端2次倦卖,接收端一次
1)發(fā)生端發(fā)生標(biāo)有SYN的數(shù)據(jù)包
2)接收端收到后钦听,回復(fù)標(biāo)有SYN/ACK的數(shù)據(jù)包表示確認(rèn)
3)發(fā)送端發(fā)送帶有ACK的數(shù)據(jù)包

8.DBS域名解析:指的是域名到IP的解析。

9.各協(xié)議的職責(zé):
DNS:解析域名
Http:生成報文硼莽,解析報文
TCP:切割http報文庶溶,傳輸數(shù)據(jù),3次握手
IP:搜索地址懂鸵,路由轉(zhuǎn)發(fā)

10.URI格式:協(xié)議方案偏螺,登錄信息,地址端口匆光,路徑套像,查詢

第二部分

1.請求報文的組成:請求URI,協(xié)議版本,可選請求頭部字段终息,內(nèi)容實體

2.響應(yīng)報文組成:協(xié)議版本夺巩、狀態(tài)碼、解釋狀態(tài)碼短語采幌、可選響應(yīng)首部字段劲够、響應(yīng)實體

3.HTTP: 無狀態(tài)協(xié)議震桶,不做持久化處理

4.HTTP/1.1引入了cookie技術(shù)休傍,實現(xiàn)保持狀態(tài)

5.HTTP的方法:
GET: 獲取資源
POST:傳輸實體主體
PUT:傳輸文件
DELETE:刪除資源
OPTIONS: 訪問支持的方法
TRACE:追蹤路徑
CONNECT:要求使用隧道協(xié)議連接代理

6.以前是每次請求,TCP都會短開蹲姐,但是現(xiàn)在的網(wǎng)頁圖片多磨取,請求多,增加了通信量的開銷柴墩。所以在HTTP/1.1中增加了keep-alive,任意一端沒明確斷開忙厌,就保持TCP連接狀態(tài)。

7.管線化:一個請求沒響應(yīng)就可以發(fā)生下一個請求江咳,也就是同時并行發(fā)送多個請求逢净。

8.Cookie技術(shù)
在沒有Cookie的時候發(fā)送請求,服務(wù)端會在響應(yīng)的的報文內(nèi)增加一個:set-cookie頭部字段信息歼指。
客戶端會根據(jù)這個字段信息將內(nèi)容保存到cookie爹土。
再次請求的時候,就會帶著這個cookie踩身。
所以說胀茵,其實一次會話,雖然session是保存在服務(wù)端挟阻,但是和cookie還是有關(guān)系的琼娘。所以要做路由轉(zhuǎn)發(fā)的類似功能峭弟,需要從這里下手(個人理解)。

第三部分

1.HTTP報文內(nèi)的HTTP信息
請求報文: 報文首部(請求行:請求方法+URL脱拼,請求首部字段瞒瘸,通用首部字段、實體首部)挪拟,報文主體
響應(yīng)報文:報文首部(狀態(tài)行:狀態(tài)碼+短語挨务,響應(yīng)首部,通用首部玉组,實體首部)谎柄,報文主體
首部字段主要為通用、請求惯雳、響應(yīng)朝巫、實體,其他也有石景,比如cookie劈猿。

2.傳輸?shù)膬?nèi)容會進(jìn)行壓縮,如gzip

3.Http協(xié)議也采納了多部分對象集合潮孽,發(fā)生的報文包含多類型實體
多部分對象集合:multipart/form-data

4.獲取部分內(nèi)容的范圍請求:
Range:bytes=5001-10000:下載5001到10000字節(jié)揪荣,這是個首部字段

5.內(nèi)容協(xié)商返回最合適內(nèi)容,比如返回的是英文還是中文(瀏覽器的語言)
字段:Accept往史,Accept-charset仗颈,Accept-Encoding,Accept-Language椎例,Content-Language

第四部分

1.狀態(tài)碼類別
1XX: 請求正在處理挨决,信息性
2XX:成功。200:OK订歪,204:沒有主體脖祈,206:響應(yīng)報文范圍內(nèi)容
3XX:重定向。301:永久刷晋,302:臨時盖高,303:請求另一個url,304眼虱,307:禁止post轉(zhuǎn)get
4XX:客戶端錯誤喻奥,400:bad request。401:認(rèn)證問題蒙幻,403映凳,不允許訪問,404:not found
5XX: 服務(wù)端錯誤邮破,500诈豌,error仆救,503:服務(wù)器超載

第五部分

與Http協(xié)作的web服務(wù)器
1.因為DNS會將域名映射為IP,所以當(dāng)請求到服務(wù)器時候矫渔,已經(jīng)是IP形式

2.通信數(shù)據(jù)轉(zhuǎn)發(fā)程序:代理(轉(zhuǎn)發(fā)功能)彤蔽,網(wǎng)關(guān)(轉(zhuǎn)發(fā)其他服務(wù)器通信數(shù)據(jù)的服務(wù)器),隧道(相隔甚遠(yuǎn)的客戶端與服務(wù)器之間中轉(zhuǎn)通信的程序)

3.代理:
不改變請求URI庙洼,直接轉(zhuǎn)發(fā)
代理轉(zhuǎn)發(fā)請求時顿痪,會追加寫入via首部信息,分為2類:是否使用緩存油够,是否修改報文
緩存帶來會預(yù)先將資源緩存在代理服務(wù)器
透明代理不對報文做任何修改

4.網(wǎng)關(guān):與代理十分相似蚁袭,但網(wǎng)關(guān)可以提供非HTTP協(xié)議服務(wù),如網(wǎng)關(guān)可以連接數(shù)據(jù)庫

5.隧道石咬,一條通信線路

第六部分

1.HTTP報文首部
HTTP請求報文首部報文是由方法揩悄、URI、HTTP版本鬼悠、首部字段組成
HTTP響應(yīng)報文首部是由HTTP版本删性,狀態(tài)碼(數(shù)字或短語)、首部字段組成焕窝。

2.HTTP首部字段傳遞重要信息蹬挺,結(jié)構(gòu)為: 字段名:字段值。如content-Type:text/html

3.首部字段分為通用它掂、請求巴帮、響應(yīng)、實體4類群发。
通用首部字段:
Cache-control: 控制緩存行為晰韵;
connection:逐跳首部发乔,連接的管理
Date:創(chuàng)建報文的日期
pragma: 報文指令
Trailer:報文末端首部一覽
Transfer-Encoding:指定報文主體的傳輸編碼方式
upgrade:升級其他協(xié)議
via:代理服務(wù)器相關(guān)信息
waring:錯誤通知

請求首部字段:
Accept: 用戶代理可處理模型
Accept-charset:優(yōu)先字符集
Accept-Encoding:有限的內(nèi)容編碼
Accept-Language:優(yōu)先的語言
Authorization: web認(rèn)證信息
Except:期待服務(wù)器的行為
From:用戶的電子郵件
Host:請求服務(wù)器地址
If-Match:比較實體標(biāo)記熟妓,相反的是If-None-Match
If-Modified-Since,If-Unmodified-Since:比較資源更新時間
If-Range:資源來更新時byte的范圍
Max-Forwards:最大的傳輸逐跳數(shù)
Proxy-Authorization:代理服務(wù)器要求的認(rèn)證信息
Range:實體字節(jié)范圍請求
Refer:對請求中的URI原始獲取方
User-Agent: http客戶端信息

響應(yīng)首部字段:
Accept-Ranges:是否接受字節(jié)范圍請求
Age:推算資源創(chuàng)建時間
EAge:資源匹配時間
Location:另客戶端重定向指定的URI
Proxy-Authenticate:代理服務(wù)器對客戶端認(rèn)證信息
Server: Http服務(wù)器
vary:代理服務(wù)器緩存的管理信息
www-Authenticate:服務(wù)器對客戶端認(rèn)證信息

實體首部:
Allow: 資源支持的Http方法
Content-Encoding: 實體主題適用編碼
Content-Length:實體主體大小
Content-Location:替代對應(yīng)資源的uri
Content-MD5:實體報文摘要
Content-Range: 實體報文位置范圍
Content-Type: 媒體類型
Expires:過期時間
Last-Modified:最后修改時間

4.非HTTP/1.1首部字段
如Cookie,set-Cookie, Content-isposition等

4.End-to-End首部:端到端首部栏尚,必須保存在魂村生成的響應(yīng)起愈,且必須轉(zhuǎn)發(fā)

5.Hop-by-Hop首部:逐跳首部,支隊單詞轉(zhuǎn)發(fā)有效译仗,會因為通過緩存或者代理不再轉(zhuǎn)發(fā)
Connection抬虽,keep-Alive, Proxy-Authenticate, Proxy-Authorization, Trailer, TE, Transfer-Encoding, upgrade都是逐跳首部

6.常用的一些首部和取值
6.1 Cache-Control: 操作緩存的機(jī)制,如:private, max-age=0, no-cache
取值:public: 其他用戶也可采用緩存纵菌,no-cache:防止返回過期資源阐污,no-store:含機(jī)密信息,max-age:緩存時間咱圆,min-fresh, max-state

6.2 connection: 控制不再轉(zhuǎn)發(fā)給代理的首部笛辟,管理持久連接
如: connection: upgrade, 刪除upgrade在轉(zhuǎn)發(fā)
close:關(guān)閉長連接功氨,keep-alive:長連接

6.3 Date: 報文創(chuàng)建時間

6.4 pragma: 歷史遺留字段

6.5 Trailer: 事先說明在報文主體后記錄了哪些主體

6.6 Transfer-Encoding: 報文主體采用的編碼格式,如chuked: 分塊傳輸

6.7 upgrade: 用于檢測是否可用版本通信手幢,使用時捷凄,額外指定connection: upgrade

6.8 via: 處理網(wǎng)關(guān)時加上內(nèi)容

6.9 warning: http/1.0 Retry-After演變的,一些警告

請求首部:
Accept: 可處理的媒體類型围来,多個用逗號隔開
文本文件: text/html, text/plain, text/css, application/xml 等等
圖片: image/jpeg/gif/png等
視頻文件:video/mpeg
應(yīng)用程序使用的二進(jìn)制文件: application/octet-stream/zip ...

Accept-Charset: 通知服務(wù)器用戶字符集跺涤,多個逗號隔開,如iso-8859-5

Accept-Encoding: 用戶代理支持內(nèi)容編碼监透,多個逗號隔開桶错,如gzip,deflate

Accept-Language: zh-en, en-us胀蛮,處理的語言

Authorization: 代理認(rèn)證信息值

Except: 期望某種特定行為

Max-Forwards: 最多轉(zhuǎn)發(fā)次數(shù)

Refer:告知請求的原始URI

  1. Cookie服務(wù)的首部字段
    Set-Cookie: 響應(yīng)牛曹、開始狀態(tài)所使用的的cookie信息
    cookie: 輕汽油服務(wù)器接收到的cookie信息

set-Cookie的字段屬性:
Name=value: 賦予cookie的值
expires=Date: cookie的有效期
path=Path: 目錄
domain:域名
secure: 僅在https才發(fā)生cookie
HttpOnly: 使cookie不能被js訪問

其他首部:
首部字段可以自己擴(kuò)展,比如下載時候的文件名
X-Frame-Options: 控制web的frame信息
X-XSS-Protection:針對XSS跨站腳本攻擊策略
DNT: 拒絕個人信息被收集
P3P: 保護(hù)隱私的

第七部分 HTTPS

竊聽醇滥、抓包或嗅探器黎比,如wireshark,拆包攻擊
SSL與TLS組合使用
https是身披SSL外殼的HTTP
HTTPS采用共享秘鑰和公開秘鑰兩者并用的混合加密機(jī)制
使用SSL會帶來通信慢和大量CPU與內(nèi)存消耗

第八部分

確認(rèn)訪問用戶身份認(rèn)證
常用的核對信息:密碼,動態(tài)令牌鸳玩,數(shù)字證書阅虫,生物證人,IC卡號
HTTP認(rèn)證不跟,BASIC認(rèn)證颓帝, SSL客戶端, FORM BASE認(rèn)證窝革, DIGEST認(rèn)證
使用cookie來管理session

第九部分

基于HTTPS功能追加協(xié)議
google發(fā)布:消除http瓶頸的SPDY
AJAX的解決方案是拉取
Comet解決方案购城,通過延遲應(yīng)答實現(xiàn)推送功能
然后到SPDY再有了websocket

第十部分

web攻擊方法
主動攻擊:直接對服務(wù)器資源攻擊,如SQL注入虐译,OS命令攻擊
被動攻擊:誘導(dǎo)進(jìn)入陷阱
跨站腳本攻擊(XSS)
郵件首部注入攻擊
目錄遍歷攻擊
遠(yuǎn)程文件包含漏洞
會話劫持瘪板,會話固定攻擊

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市漆诽,隨后出現(xiàn)的幾起案子侮攀,更是在濱河造成了極大的恐慌,老刑警劉巖厢拭,帶你破解...
    沈念sama閱讀 216,372評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件兰英,死亡現(xiàn)場離奇詭異,居然都是意外死亡供鸠,警方通過查閱死者的電腦和手機(jī)畦贸,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來楞捂,“玉大人薄坏,你說我怎么就攤上這事正林。” “怎么了颤殴?”我有些...
    開封第一講書人閱讀 162,415評論 0 353
  • 文/不壞的土叔 我叫張陵觅廓,是天一觀的道長。 經(jīng)常有香客問我涵但,道長杈绸,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,157評論 1 292
  • 正文 為了忘掉前任矮瘟,我火速辦了婚禮瞳脓,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘澈侠。我一直安慰自己劫侧,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,171評論 6 388
  • 文/花漫 我一把揭開白布哨啃。 她就那樣靜靜地躺著烧栋,像睡著了一般。 火紅的嫁衣襯著肌膚如雪拳球。 梳的紋絲不亂的頭發(fā)上审姓,一...
    開封第一講書人閱讀 51,125評論 1 297
  • 那天,我揣著相機(jī)與錄音祝峻,去河邊找鬼魔吐。 笑死,一個胖子當(dāng)著我的面吹牛莱找,可吹牛的內(nèi)容都是我干的酬姆。 我是一名探鬼主播,決...
    沈念sama閱讀 40,028評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼奥溺,長吁一口氣:“原來是場噩夢啊……” “哼辞色!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起谚赎,我...
    開封第一講書人閱讀 38,887評論 0 274
  • 序言:老撾萬榮一對情侶失蹤淫僻,失蹤者是張志新(化名)和其女友劉穎诱篷,沒想到半個月后壶唤,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,310評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡棕所,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,533評論 2 332
  • 正文 我和宋清朗相戀三年闸盔,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片琳省。...
    茶點故事閱讀 39,690評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡迎吵,死狀恐怖躲撰,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情击费,我是刑警寧澤拢蛋,帶...
    沈念sama閱讀 35,411評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站蔫巩,受9級特大地震影響谆棱,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜圆仔,卻給世界環(huán)境...
    茶點故事閱讀 41,004評論 3 325
  • 文/蒙蒙 一垃瞧、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧坪郭,春花似錦个从、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至沪曙,卻和暖如春意推,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背珊蟀。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評論 1 268
  • 我被黑心中介騙來泰國打工菊值, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人育灸。 一個月前我還...
    沈念sama閱讀 47,693評論 2 368
  • 正文 我出身青樓腻窒,卻偏偏與公主長得像,于是被迫代替她去往敵國和親磅崭。 傳聞我的和親對象是個殘疾皇子儿子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,577評論 2 353

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

  • Web 頁面的實現(xiàn) Web 基于 HTTP 協(xié)議通信 客戶端(Client)的 Web 瀏覽器從 Web 服務(wù)器端...
    毛圈閱讀 1,082評論 0 2
  • 本文是《圖解HTTP》讀書筆記的第二篇,主要包括此書的第六章內(nèi)容砸喻,因為第六章的內(nèi)容較多柔逼,而且比較重要,所以單獨寫為...
    lijiankun24閱讀 1,363評論 0 6
  • HTTP 圖解筆記 一 .簡單了解 1.1HTTP背景 1.1.1 HTTP的誕生 1989 年 3 月割岛,互聯(lián)網(wǎng)還...
    Aaron96閱讀 1,039評論 0 4
  • 網(wǎng)絡(luò)基礎(chǔ)知識 URL和URI URI(Uniform Resource Idenifier)統(tǒng)一資源標(biāo)識符愉适。即由某...
    d9fc24a0c9a9閱讀 1,125評論 0 6
  • 也許每個人的生活中,都會有一些晦暗的時刻癣漆,看不到希望维咸,找不到出口,不知道該如何繼續(xù)。 有一陣子癌蓖,工...
    陳小六家三少夜閱讀 132評論 0 1