2 與HTTP相關(guān)的各種概念
1 與HTTP相關(guān)的各種應(yīng)用
1 網(wǎng)絡(luò)世界
互聯(lián)網(wǎng)(Internet)里面存儲(chǔ)著無窮信息資源,我們說的上網(wǎng)只是訪問互聯(lián)網(wǎng)的一個(gè)子集,萬維網(wǎng)(World Wide Web),它基于HTTP協(xié)議,傳輸 HTML 等超文本資源,能力也被限制在HTTP協(xié)議之內(nèi)。
互聯(lián)網(wǎng)除了萬維網(wǎng)的資源外,還有電子郵件、BT和Magnet點(diǎn)對(duì)點(diǎn)下載、FTP文件下載、SSH安全登錄、各種即時(shí)通信服務(wù)等等,它們需要用各自的專有協(xié)議來訪問。
但是HTTP協(xié)議靈活,易于擴(kuò)展,所以原本不屬于HTTP的資源也可以包裝成 HTTP來訪問,這就是為什么我們總能看到各種網(wǎng)頁應(yīng)用,如微信網(wǎng)頁版,郵箱網(wǎng)頁版。
2 瀏覽器
瀏覽器:Web Browser,其中的Web指 World Wide Web。
本質(zhì)是HTTP協(xié)議中的請(qǐng)求方,被稱為 User Agent 即 用戶代理,意思是作為訪問者的“代理”來發(fā)起HTTP請(qǐng)求。
不過在不引起混淆的情況下,稱之為 客戶端。
3 Web服務(wù)器
Web服務(wù)器:Web Server。
HTTP協(xié)議中的應(yīng)答方。包含硬件和軟件兩個(gè)層面。
硬件,物理形式或“云”形式的機(jī)器,通常是利用反向代理、負(fù)載均衡等技術(shù)組成的龐大集群。
軟件,提供Web服務(wù)的應(yīng)用程序,通常會(huì)運(yùn)行在硬件含義的服務(wù)器上。
常見的web服務(wù)器:
- Apache 老牌服務(wù)器
- Nginx 高性能,高穩(wěn)定,易于拓展
- Window上的IIS,Java的Jetty/Tomcat 性能不高
4 CDN
瀏覽器和服務(wù)器是HTTP協(xié)議的兩個(gè)端點(diǎn),兩者之間還有一個(gè)重要角色:CDN。
CDN,全稱是Content Delivery Network,翻譯過來就是內(nèi)容分發(fā)網(wǎng)絡(luò)。它應(yīng)用了 HTTP 協(xié)議里的緩存和代理技術(shù),代替源站響應(yīng)客戶端的請(qǐng)求。
CDN 可以緩存源站的數(shù)據(jù),讓瀏覽器的請(qǐng)求不用“千里迢迢”地到達(dá)源站服務(wù)器,直接在“半路”就可以獲取響應(yīng)。如果 CDN 的調(diào)度算法很優(yōu)秀,更可以找到離用戶最近的節(jié)點(diǎn),大幅度縮短響應(yīng)時(shí)間。
CDN 除了基本的網(wǎng)絡(luò)加速外,還提供負(fù)載均衡、安全防護(hù)、邊緣計(jì)算、跨運(yùn)營商網(wǎng)絡(luò)等功能,能夠成倍地“放大”源站服務(wù)器的服務(wù)能力,很多云服務(wù)商都把 CDN 作為產(chǎn)品的一部分。
5 爬蟲
HTTP協(xié)議的 User Agent 不必須是人,也可以是機(jī)器人,這些機(jī)器人正式名稱就叫做 “爬蟲”(Crawler)。
爬蟲絕大多數(shù)是各大搜索引擎放出來的,抓取網(wǎng)頁存入龐大數(shù)據(jù)庫,再建立關(guān)鍵字索引,這樣就能從搜索引擎中快速地搜索到某個(gè)頁面。
壞處:過度消耗網(wǎng)絡(luò)資源,占用服務(wù)器和帶寬,影響網(wǎng)站對(duì)真實(shí)數(shù)據(jù)的分析,導(dǎo)致敏感信息泄漏。
2 與HTTP相關(guān)的各種協(xié)議
1 HTML
HTML 是 HTTP 協(xié)議傳輸?shù)闹饕獌?nèi)容之一,它描述了超文本頁面,用各種“標(biāo)簽”定義文字、圖片等資源和排版布局,最終由瀏覽器“渲染”出可視化頁面。
HTML 目前有兩個(gè)主要的標(biāo)準(zhǔn),HTML4 和 HTML5。
廣義上的 HTML 通常是指 HTML、JavaScript、CSS 等前端技術(shù)的組合,能夠?qū)崿F(xiàn)比傳統(tǒng)靜態(tài)頁面更豐富的動(dòng)態(tài)頁面
2 編程語言
JavaScript,CSS,PHP,Python 等。
3 WebService
Web Service,它的名字與 Web Server 很像,但卻是一個(gè)完全不同的東西。
Web Service 是一種由 W3C 定義的應(yīng)用服務(wù)開發(fā)規(guī)范,使用 client-server 主從架構(gòu),通常使用 WSDL 定義服務(wù)接口,使用 HTTP 協(xié)議傳輸 XML 或 SOAP 消息,也就是說,它是一個(gè)基于 Web(HTTP)的服務(wù)架構(gòu)技術(shù),既可以運(yùn)行在內(nèi)網(wǎng),也可以在適當(dāng)保護(hù)后運(yùn)行在外網(wǎng)。
因?yàn)椴捎昧?HTTP 協(xié)議傳輸數(shù)據(jù),所以在 Web Service 架構(gòu)里服務(wù)器和客戶端可以采用不同的操作系統(tǒng)或編程語言開發(fā)。
例如服務(wù)器端用 Linux+Java,客戶端用 Windows+C#,具有跨平臺(tái)跨語言的優(yōu)點(diǎn)。
4 WAF
WAF 是“網(wǎng)絡(luò)應(yīng)用防火墻”。與硬件“防火墻”類似,它是應(yīng)用層面的“防火墻”,專門檢測(cè) HTTP 流量,是防護(hù) Web 應(yīng)用的安全技術(shù)。
WAF 通常位于 Web 服務(wù)器之前,可以阻止如 SQL 注入、跨站腳本等攻擊,目前應(yīng)用較多的一個(gè)開源項(xiàng)目是 ModSecurity,它能夠完全集成進(jìn) Apache 或 Nginx。
浙公網(wǎng)安備 33010602011771號(hào)