- 對于普通的上網(wǎng)钳宪,系統(tǒng)是這樣做的:瀏覽器本身就是一個客戶端债朵,當(dāng)你輸入URL的時候躁染,首先瀏覽器會去請求DNS服務(wù)器畸陡,通過DNS獲取相應(yīng)域名的對應(yīng)的Ip地址鹰溜,通過IP地址找到對應(yīng)IP對應(yīng)的服務(wù)器虽填,要求建立TCP連接,等瀏覽器發(fā)送完HTTP Request包后曹动,服務(wù)器接受到請求包之后才開始處理請求包斋日,服務(wù)器調(diào)用自身服務(wù),返回Http Response (響應(yīng)包):客戶端收到來自服務(wù)器的響應(yīng)后開始渲染這個Response包里的主體(body),等收到全部的內(nèi)容隨后斷開與該服務(wù)器之間的TCP連接仁期。
Web服務(wù)器也被稱為HTTP服務(wù)器桑驱,它通過HTTP協(xié)議與客戶端通信(客戶端通常指的是Web瀏覽器,手機的客戶端也是瀏覽器實現(xiàn)的)
TCP/IP協(xié)議(來源于百度百科):Transmission Control Protocol/Internet Protocol的簡寫跛蛋,中譯名為傳輸控制協(xié)議/因特網(wǎng)互聯(lián)協(xié)議,又名網(wǎng)絡(luò)通訊協(xié)議痊硕,是Internet最基本的協(xié)議赊级、Internet國際互聯(lián)網(wǎng)絡(luò)的基礎(chǔ),由網(wǎng)絡(luò)層的IP協(xié)議和傳輸層的TCP協(xié)議組成岔绸。TCP/IP 定義了電子設(shè)備如何連入因特網(wǎng)理逊,以及數(shù)據(jù)如何在它們之間傳輸?shù)臉藴省f(xié)議采用了4層的層級結(jié)構(gòu)盒揉,每一層都呼叫它的下一層所提供的協(xié)議來完成自己的需求晋被。通俗而言:TCP負責(zé)發(fā)現(xiàn)傳輸的問題,一有問題就發(fā)出信號刚盈,要求重新傳輸羡洛,直到所有數(shù)據(jù)安全正確地傳輸?shù)侥康牡亍6鳬P是給因特網(wǎng)的每一臺聯(lián)網(wǎng)設(shè)備規(guī)定一個地址藕漱。
HTTP協(xié)議(來源于百度百科):超文本傳輸協(xié)議(HTTP欲侮,HyperText Transfer Protocol)是互聯(lián)網(wǎng)上應(yīng)用最為廣泛的一種網(wǎng)絡(luò)協(xié)議。所有的WWW文件都必須遵守這個標準肋联。設(shè)計HTTP最初的目的是為了提供一種發(fā)布和接收HTML頁面的方法威蕉。1960年美國人Ted Nelson構(gòu)思了一種通過計算機處理文本信息的方法,并稱之為超文本(hypertext),這成為了HTTP超文本傳輸協(xié)議標準架構(gòu)的發(fā)展根基橄仍。Ted Nelson組織協(xié)調(diào)萬維網(wǎng)協(xié)會(World Wide Web Consortium)和互聯(lián)網(wǎng)工程工作小組(Internet Engineering Task Force )共同合作研究韧涨,最終發(fā)布了一系列的RFC,其中著名的RFC 2616定義了HTTP 1.1侮繁。
-
Web服務(wù)器的工作的原理:
- 客戶端通過TCP/IP協(xié)議建立到服務(wù)器TCP連接
- 客戶端想服務(wù)器發(fā)送HTTP協(xié)議請求包虑粥,請求服務(wù)器里的資源文檔
- 服務(wù)器向客戶端發(fā)送發(fā)送HTTP協(xié)議應(yīng)答包,如果請求的資源包含有動態(tài)語言的內(nèi)容鼎天,那么服務(wù)器會調(diào)用動態(tài)語言的解析引擎負責(zé)處理動態(tài)內(nèi)容育勺,并將處理得到的數(shù)據(jù)返回給客戶端
- 客戶端與服務(wù)端斷開,由客戶端解釋HTML文檔纺非,在客戶端屏幕上渲染圖形結(jié)果
需要注意的是:客戶端和服務(wù)器之間的通信是非持久連接的烧颖,也就是當(dāng)服務(wù)器發(fā)送了應(yīng)答后就與客戶端斷開連接了窄陡,等待下一次請求。
URL和DNS解析
- URL(Uniform Resource Locator)是“統(tǒng)一資源定位符”的英文縮寫,用于描述一個網(wǎng)絡(luò)上的資源
- URL由三部分組成:資源類型邪意、存放資源的主機域名九妈、資源文件名策菜。
- URL的一般語法格式為:(帶方括號[]的為可選項):scheme://host[:port#]/path/.../[?query-string][#anchor]
scheme://host[:port#]/path/.../[?query-string][#anchor]
scheme 指定底層使用的協(xié)議(例如:http, https, ftp)
host HTTP服務(wù)器的IP地址或者域名
port# HTTP服務(wù)器的默認端口是80寒匙,這種情況下端口號可以省略考蕾。如果使用了別的端口塞帐,必須指明句携,例如 http://www.cnblogs.com:8080/
path 訪問資源的路徑
query-string 發(fā)送給http服務(wù)器的數(shù)據(jù)
anchor 錨
- DNS解析
- DNS(Domain Name System)是域名系統(tǒng)的英文縮寫麸澜,是一種組織成域?qū)哟谓Y(jié)構(gòu)的計算機和網(wǎng)絡(luò)服務(wù)命名的系統(tǒng)编矾,它用于TCP/IP網(wǎng)絡(luò),它從事將主機名或者域名轉(zhuǎn)換成為實際的IP地址的工作馁害。NDS就是一位翻譯官
-
更加詳細的工作流程如下:
-
1窄俏、在瀏覽器中輸入'www.reibang.com'域名,操作系統(tǒng)會檢查自己本地的hosts文件是否有這個網(wǎng)址映射的關(guān)系碘菜,如果有機會調(diào)用這個IP地址映射凹蜈,完成域名解析(這里有個騷操作,在雙十一的時候忍啸,把本地的hosts的文件指向你自己的靜態(tài)頁面仰坦,隨便寫個404的頁面,告訴你女朋友說计雌,服務(wù)器掛了悄晃,買不了,哈哈哈哈哈哈?)
2凿滤、如果
hosts
沒有這個域名的映射妈橄,就會查找本地的DNS解析器緩存庶近,是否有這個網(wǎng)址映射的關(guān)系,如果有眷细,直接返回拦盹,完成域名解析。-
3溪椎、如果
hosts
于本地DNS解析器緩存都沒有相應(yīng)的網(wǎng)址映射關(guān)系普舆,首先會找TCP/IP
參數(shù)中設(shè)置的首選的DNS服務(wù)器(有時候我們翻墻就要改動這里),本地DNS服務(wù)器校读,此服務(wù)器收到查詢時候沼侣,如果要查詢的域名,它包含本地配置區(qū)域資源中歉秫,則返回解析結(jié)果給客戶機蛾洛,完成域名解析,這個解析具有權(quán)威性
4雁芙、如果要查詢的域名轧膘,不由本地DNS服務(wù)器區(qū)域解析,但該服務(wù)器已經(jīng)緩存了此網(wǎng)址的映射的關(guān)系兔甘,則調(diào)用這個IP地址映射谎碍,完成域名解析,此解析不具有權(quán)威性
5洞焙、如果本地DNS服務(wù)器本地區(qū)域文件與緩存解析都失效蟆淀,則根據(jù)本地DNS服務(wù)器設(shè)置(是否設(shè)置了轉(zhuǎn)發(fā)器)進行查詢,如果沒有使用轉(zhuǎn)發(fā)模式澡匪,本地的DNS就把請求轉(zhuǎn)發(fā)到根DNS服務(wù)器熔任,根服務(wù)器收到請求了會去判斷這個域名(.com)是誰來授權(quán)管理,并會返回一個負責(zé)該頂級域名服務(wù)器的一個IP唁情。本地服務(wù)收到服務(wù)器的IP信息了疑苔,將會聯(lián)系負責(zé)
.com
的這臺服務(wù)器。這臺服務(wù)器負責(zé).com
域的服務(wù)器收到請求了荠瘪,如果自己無法解析夯巷,它就會找一個管理.com
域下一級DNS服務(wù)器地址(jianshu.com)給本地的DNS服務(wù)器。當(dāng)本地的DNS服務(wù)器收到這個地址后哀墓,就會找jianshu.com
,重復(fù)上面的動作趁餐,進行查詢,直到找到www.reibang.com
這個地址篮绰。-
6后雷、如果用的轉(zhuǎn)發(fā)的模式,此DNS服務(wù)器就會把這個請求轉(zhuǎn)發(fā)至上一級DNS服務(wù)器,由上一級服務(wù)器進行解析臀突,如果上一層服務(wù)器不能解析勉抓,或者是根DNS服務(wù)器吧請求轉(zhuǎn)至上上級。不管本地DNS服務(wù)器用的是轉(zhuǎn)發(fā)候学,還是根提示藕筋,左后都是把結(jié)果返回給本地DNS服務(wù)器,由此DNS服務(wù)器在返回給客戶機
-
所謂遞歸查詢過程:就是 “查詢的遞交者” 更替,查詢提交者不斷的更變,
而迭代查詢過程: 則是 “查詢的遞交者”不變梳码。
舉個例子來說隐圾,你想知道某個一起上法律課的女孩的電話,并且你偷偷拍了她的照片掰茶,回到寢室告訴一個很仗義的哥們兒暇藏,這個哥們兒二話沒說,拍著胸脯告訴你濒蒋,甭急盐碱,我替你查(此處完成了一次遞歸查詢,即沪伙,問詢者的角色更替)瓮顽。然后他拿著照片問了學(xué)院大四學(xué)長,學(xué)長告訴他围橡,這姑娘是xx系的趣倾;然后這哥們兒馬不停蹄又問了xx系的辦公室主任助理同學(xué),助理同學(xué)說是xx系yy班的某饰,然后很仗義的哥們兒去xx系yy班的班長那里取到了該女孩兒電話。(此處完成若干次迭代查詢善绎,即黔漂,問詢者角色不變,但反復(fù)更替問詢對象)最后禀酱,他把號碼交到了你手里炬守。完成整個查詢過程。
通過上面的步驟剂跟,最終獲取IP地址减途,也就是瀏覽器最后發(fā)起請求的時候基于IP來和服務(wù)器做信息交換的
根服務(wù)器主要用來管理互聯(lián)網(wǎng)的主目錄,全世界只有13臺(這13臺根域名服務(wù)器名字分別為“A”至“M”)曹洽,1個為主根服務(wù)器在美國鳍置。其余12個均為輔根服務(wù)器,其中9個在美國送淆,歐洲2個税产,位于英國和瑞典,亞洲1個位于日本。 [1]
HTTP協(xié)議詳解
- HTTP是一種讓
Web服務(wù)器
與瀏覽器(客戶端)通過Internet發(fā)送與接收數(shù)據(jù)的協(xié)議
,它建立在TCP協(xié)議
之上辟拷,一般采用TCP的80端口
撞羽。 - 它是一個請求、響應(yīng)協(xié)議--客戶端發(fā)出一個請求衫冻,服務(wù)器響應(yīng)這個請求诀紊。
- 在HTTP中,客戶端總是通過建立一個連接與發(fā)送一個HTTP請求來發(fā)起一個事務(wù)隅俘。
- 服務(wù)器不能主動去與客戶端聯(lián)系邻奠,也不能給客戶端發(fā)出一個回調(diào)連接】既客戶端與服務(wù)器端都可以提前中斷一個連接惕澎。例如,當(dāng)瀏覽器下載一個文件時颜骤,你可以通過點擊“停止”鍵來中斷文件的下載唧喉,關(guān)閉與服務(wù)器的HTTP連接。
- HTTP協(xié)議是無狀態(tài)的忍抽,同一個客戶端的這次請求和上次請求是沒有對應(yīng)關(guān)系八孝,對HTTP服務(wù)器來說,它并不知道這兩個請求是否來自同一個客戶端鸠项。為了解決這個問題干跛,
Web程序
引入了Cookie機制
來維護連接的可持續(xù)狀態(tài)。 -
Cookie
意為“甜餅”祟绊,是由W3C組織提出楼入,最早由Netscape社區(qū)發(fā)展的一種機制。目前Cookie已經(jīng)成為標準牧抽,所有的主流瀏覽器如IE嘉熊、Netscape、Firefox扬舒、Opera等都支持Cookie阐肤。由于HTTP是一種無狀態(tài)的協(xié)議,服務(wù)器單從網(wǎng)絡(luò)連接上無從知道客戶身份讲坎。怎么辦呢孕惜?就給客戶端們頒發(fā)一個通行證吧,每人一個晨炕,無論誰訪問都必須攜帶自己通行證衫画。這樣服務(wù)器就能從通行證上確認客戶身份了。這就是Cookie的工作原理瓮栗。 - HTTP協(xié)議是建立在TCP協(xié)議之上的碧磅,因此TCP攻擊一樣會影響HTTP的通訊碘箍,例如比較常見的一些攻擊:
SYN Flood
是當(dāng)前最流行的DoS(拒絕服務(wù)攻擊)與DdoS(分布式拒絕服務(wù)攻擊)的方式之一,這是一種利用TCP協(xié)議
缺陷鲸郊,發(fā)送大量偽造的TCP連接請求丰榴,從而使得被攻擊方資源耗盡(CPU滿負荷或內(nèi)存不足)的攻擊方式。
HTTP請求包(瀏覽器信息)
- Request包的結(jié)構(gòu), Request包分為3部分秆撮,第一部分叫Request line(請求行), 第二部分叫Request header(請求頭),第三部分是body(主體)四濒。header和body之間有個空行,請求包的例子所示:
GET /domains/example/ HTTP/1.1 //請求行: 請求方法 請求URI HTTP協(xié)議/協(xié)議版本
Host:www.iana.org //服務(wù)端的主機名
User-Agent:Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.4 (KHTML, like Gecko) Chrome/22.0.1229.94 Safari/537.4 //瀏覽器信息
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 //客戶端能接收的MIME
Accept-Encoding:gzip,deflate,sdch //是否支持流壓縮
Accept-Charset:UTF-8,*;q=0.5 //客戶端字符編碼集
//空行,用于分割請求頭和消息體
//消息體,請求資源參數(shù),例如POST傳遞的參數(shù)
- 抓取簡書的首頁的信息
Request URL:http://www.reibang.com/
Request Method:GET
Status Code:304 Not Modified
Remote Address:127.0.0.1:8888
Response Headers
view source
Cache-Control:max-age=0, private, must-revalidate
Connection:keep-alive
Content-Security-Policy:script-src 'self' 'unsafe-inline' 'unsafe-eval' *.jianshu.com *.jianshu.io api.geetest.com static.geetest.com dn-staticdown.qbox.me zz.bdstatic.com *.google-analytics.com # push.zhanzhang.baidu.com res.wx.qq.com qzonestyle.gtimg.cn as.alipayobjects.com ;style-src 'self' 'unsafe-inline' *.jianshu.com *.jianshu.io api.geetest.com static.geetest.com ;
Date:Mon, 02 Jul 2018 09:10:04 GMT
ETag:W/"e5bf3f5c57dcac3addf979d6e74fa906"
Server:Tengine
Set-Cookie:locale=zh-CN; path=/
Strict-Transport-Security:max-age=31536000; includeSubDomains; preload
X-Content-Type-Options:nosniff
X-Dscp-Value:0
X-Frame-Options:DENY
X-Request-Id:01a51f5d-b6ea-45c2-91a7-5fdec3a8eb70
X-Runtime:0.022833
X-Via:1.1 PSfjfzdx2mj93:9 (Cdn Cache Server V2.0), 1.1 yangdianxin66:10 (Cdn Cache Server V2.0)
X-XSS-Protection:1; mode=block
Request Headers
view source
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Encoding:gzip, deflate, sdch, br
Accept-Language:zh-CN,zh;q=0.8
Cache-Control:max-age=0
Connection:keep-alive
Cookie:__guid=163745081.662820947905634200.1526461023901.8958; signin_redirect=https%3A%2F%2Fwww.reibang.com%2F; read_mode=day; default_font=font2; monitor_count=5; sensorsdata2015jssdkcross=%7B%22distinct_id%22%3A%22163682ac930acd-0e49b894cda713-6b1b1279-2073600-163682ac9319a0%22%2C%22%24device_id%22%3A%22163682ac930acd-0e49b894cda713-6b1b1279-2073600-163682ac9319a0%22%2C%22props%22%3A%7B%22%24latest_traffic_source_type%22%3A%22%E7%9B%B4%E6%8E%A5%E6%B5%81%E9%87%8F%22%2C%22%24latest_referrer%22%3A%22%22%2C%22%24latest_referrer_host%22%3A%22%22%2C%22%24latest_search_keyword%22%3A%22%E6%9C%AA%E5%8F%96%E5%88%B0%E5%80%BC_%E7%9B%B4%E6%8E%A5%E6%89%93%E5%BC%80%22%7D%7D; Hm_lvt_0c0e9d9b1e7d617b3e6842e85b9fb068=1528795394,1530514591; Hm_lpvt_0c0e9d9b1e7d617b3e6842e85b9fb068=1530522699; locale=zh-CN
Host:www.reibang.com
If-None-Match:W/"e5bf3f5c57dcac3addf979d6e74fa906"
Upgrade-Insecure-Requests:1
User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36
- HTTP協(xié)議定義了很多與服務(wù)器交互的請求方法职辨,最基本的有4種盗蟆,分別是GET,POST,PUT,DELETE。
- 一個URL地址用于描述一個網(wǎng)絡(luò)上的資源
- 而HTTP中的GET, POST, PUT, DELETE就對應(yīng)著對這個資源的查舒裤,增喳资,改,刪4個操作腾供。
- 最常見的就是GET和POST了仆邓。GET一般用于獲取/查詢資源信息,而POST一般用于更新資源信息伴鳖。
由于簡書地址是https
,我通過fiddler去抓一個不是http的节值,看起來比較好看
- 可以得出GET和POST的區(qū)別:
- GET提交的數(shù)據(jù)會放在URL之后,以?分割URL和傳輸數(shù)據(jù)榜聂,參數(shù)之間以&相連搞疗,如EditPosts.aspx?name=test1&id=123456。POST方法是把提交的數(shù)據(jù)放在HTTP包的body中须肆。
- GET提交的數(shù)據(jù)大小有限制(因為瀏覽器對URL的長度有限制)匿乃,而POST方法提交的數(shù)據(jù)沒有限制。
- GET方式提交數(shù)據(jù)豌汇,會帶來安全問題扳埂,比如一個登錄頁面,通過GET方式提交數(shù)據(jù)時瘤礁,用戶名和密碼將出現(xiàn)在URL上,如果頁面可以被緩存或者其他人可以訪問這臺機器梅尤,就可以從歷史記錄獲得該用戶的賬號和密碼柜思。
HTTP響應(yīng)包(服務(wù)器信息)
HTTP/1.1 200 OK //狀態(tài)行
Server: nginx/1.0.8 //服務(wù)器使用的WEB軟件名及版本
Date:Date: Tue, 30 Oct 2012 04:14:25 GMT //發(fā)送時間
Content-Type: text/html //服務(wù)器發(fā)送信息的類型
Transfer-Encoding: chunked //表示發(fā)送HTTP包是分段發(fā)的
Connection: keep-alive //保持連接狀態(tài)
Content-Length: 90 //主體內(nèi)容長度
//空行 用來分割消息頭和主體
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"... //消息體
- 獲取新浪首頁的數(shù)據(jù)如下
HTTP/1.1 200 OK
Server: nginx
Date: Mon, 02 Jul 2018 09:21:33 GMT
Content-Type: text/html
Content-Length: 576063
Connection: keep-alive
Last-Modified: Mon, 02 Jul 2018 09:20:01 GMT
Vary: Accept-Encoding
X-Powered-By: shci_v1.03
Expires: Mon, 02 Jul 2018 09:22:28 GMT
Cache-Control: max-age=60
Age: 4
Via: http/1.1 ctc.ningbo.ha2ts4.97 (ApacheTrafficServer/6.2.1 [cHs f ]), http/1.1 ctc.xiamen.ha2ts4.41 (ApacheTrafficServer/6.2.1 [cHs f ])
X-Via-Edge: 153052329372561c48b773cd64cde73000845
X-Cache: HIT.41
X-Via-CDN: f=edge,s=ctc.xiamen.ha2ts4.34.nb.sinaedge.com,c=119.139.196.97;f=Edge,s=ctc.xiamen.ha2ts4.41,c=222.76.214.34
<!DOCTYPE html>
<!-- [ published at 2018-07-02 17:20:00 ] -->
<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>新浪首頁</title>
<meta name="keywords" content="新浪,新浪網(wǎng),SINA,sina,sina.com.cn,新浪首頁,門戶,資訊" />
<meta name="description" content="新浪網(wǎng)為全球用戶24小時提供全面及時的中文資訊,內(nèi)容覆蓋國內(nèi)外突發(fā)新聞事件巷燥、體壇賽事赡盘、娛樂時尚、產(chǎn)業(yè)資訊缰揪、實用信息等陨享,設(shè)有新聞葱淳、體育、娛樂抛姑、財經(jīng)赞厕、科技、房產(chǎn)定硝、汽車等30多個內(nèi)容頻道皿桑,同時開設(shè)博客、視頻蔬啡、論壇等自由互動交流空間诲侮。" />
<link rel="mask-icon" sizes="any" color="red">
<meta name="stencil" content="PGLS000022" />
...
Response
包中的第一行叫做狀態(tài)行,由HTTP協(xié)議版本號箱蟆、狀態(tài)碼沟绪、狀態(tài)消息三部分組成-
狀態(tài)碼用來告訴HTTP客戶端,HTTP服務(wù)器是否產(chǎn)生了預(yù)期的Response空猜。HTTP/1.1協(xié)議中定義了5類狀態(tài)碼绽慈,第一個數(shù)字定義了響應(yīng)的類別
- 1XX:提示信息-表示請求已被成功接收,繼續(xù)處理
- 2XX:成功 抄肖。表示請求已被成功接收久信,理解,接收
- 3XX: 重定向:要完成請求必須進行更進一步的處理
- 4XX:客戶端錯誤:請求語法錯誤或者是請求無法實現(xiàn)
- 5XX:服務(wù)器錯誤漓摩,服務(wù)器未能夠?qū)崿F(xiàn)合法的請求
-
當(dāng)輸入的簡書的地址為http://www.reibang.com/的時候裙士,狀態(tài)碼為
301
301 Moved Permanently
被請求的資源已永久移動到新位置,并且將來任何對此資源的引用都應(yīng)該使用本響應(yīng)返回的若干個 URI 之一管毙。如果可能腿椎,擁有鏈接編輯功能的客戶端應(yīng)當(dāng)自動把請求的地址修改為從服務(wù)器反饋回來的地址-
使用網(wǎng)易云在聽歌的時候
206 Partial Content
服務(wù)器已經(jīng)成功處理了部分 GET 請求。類似于 FlashGet 或者迅雷這類的 HTTP下載工具都是使用此類響應(yīng)實現(xiàn)斷點續(xù)傳或者將一個大文檔分解為多個下載段同時下載
HTTP協(xié)議是無狀態(tài)的和Connection: keep-alive的區(qū)別
- 無狀態(tài)是指協(xié)議對于事務(wù)處理沒有記憶能力夭咬,服務(wù)器不知道客戶端是什么狀態(tài)啃炸。從另一方面講,打開一個服務(wù)器上的網(wǎng)頁和你之前打開這個服務(wù)器上的網(wǎng)頁之間沒有任何聯(lián)系卓舵。
- HTTP是一個無狀態(tài)的面向連接的協(xié)議南用,無狀態(tài)不代表HTTP不能保持TCP連接,更不能代表HTTP使用的是UDP協(xié)議(面對無連接)掏湾。
- 從HTTP/1.1起裹虫,默認都開啟了Keep-Alive保持連接特性,簡單地說融击,當(dāng)一個網(wǎng)頁打開完成后筑公,客戶端和服務(wù)器之間用于傳輸HTTP數(shù)據(jù)的TCP連接不會關(guān)閉,如果客戶端再次訪問這個服務(wù)器上的網(wǎng)頁尊浪,會繼續(xù)使用這一條已經(jīng)建立的TCP連接匣屡。
- Keep-Alive不會永久保持連接封救,它有一個保持時間,可以在不同服務(wù)器軟件(如Apache)中設(shè)置這個時間捣作。
- 一次URL請求但是左邊欄里面為什么會有那么多的資源請求誉结?
- 這個就是瀏覽器的一個功能,第一次請求url虾宇,服務(wù)器端返回的是
html
頁面搓彻,然后瀏覽器開始渲染HTML:當(dāng)解析到HTML DOM里面的圖片連接,css腳本和js腳本的鏈接嘱朽,瀏覽器就會自動發(fā)起一個請求靜態(tài)資源的HTTP請求旭贬,獲取相對應(yīng)的靜態(tài)資源,然后瀏覽器就會渲染出來搪泳,最終將所有資源整合稀轨、渲染,完整展現(xiàn)在我們面前的屏幕上岸军。
- 這個就是瀏覽器的一個功能,第一次請求url虾宇,服務(wù)器端返回的是
- 最后說明一點 :網(wǎng)頁優(yōu)化方面有一項措施是減少HTTP請求次數(shù)奋刽,就是把盡量多的css和js資源合并在一起,目的是盡量減少網(wǎng)頁請求靜態(tài)資源的次數(shù)艰赞,提高網(wǎng)頁加載速度佣谐,同時減緩服務(wù)器的壓力。
- 鑒于本人的能力有限方妖,如有錯誤還望指出狭魂,tks