1. 程式人生 > 其它 >http協議:二 (3)與HTTP相關的各種概念

http協議:二 (3)與HTTP相關的各種概念

網際網路上絕大部分資源都使用 HTTP 協議傳輸;

瀏覽器是 HTTP 協議裡的請求方,即 User Agent;

伺服器是 HTTP 協議裡的應答方,常用的有 Apache 和 Nginx;

CDN 位於瀏覽器和伺服器之間,主要起到快取加速的作用;

爬蟲是另一類 User Agent,是自動訪問網路資源的程式。

你覺得 CDN 在對待瀏覽器和爬蟲時會有差異嗎?為什麼?

回覆:

CDN可以根據User-Agent來判斷髮起請求的一端是瀏覽器還是爬蟲,對待爬蟲可以特殊處理返回特定內容

剛開始覺得應該有區分的,不然反爬蟲技術是幹什麼吃的,後來想想如果不用反爬蟲技術的話應該是沒差異的,因為CDN的核心工作是把網路的靜態資源放的離使用者更近一些,加速網路資訊的獲取速度,那區分是人要的資訊還是機器人要的資訊意義也不大,關鍵是我覺得爬蟲如果做的好模模擬人來獲取資訊,那CND也是很難區分的,再者靜態資源本來也是公開透明讓使用者代理來訪問的嘛!

區分爬蟲這個,完全在於cdn想不想做,因為cdn本質上也是web伺服器,如果它認為爬蟲影響了服務,就可以反爬蟲。如果它決定爬蟲也算源站的正常流量,就不反。所以這個問題就是讓大家去思考,沒有絕對正確的答案。

你怎麼理解 WebService 與 Web Server 這兩個非常相似的詞?

回覆:
WebService是基於Web(HTTP)的伺服器架構技術,基於HTTP協議傳輸xml或soap資料。WebServer分硬體和軟體,硬體指伺服器、雲之類,軟體如Nginx、Apache等

首先,Web Server比較容易理解,就是web伺服器,有軟的也有硬的,軟的特指有程式程式碼實現,硬的特指有實實在在的硬體機器組成,比如:Apache、nginx、tomcat、jetty等。
web service 直譯是web服務,不過這麼講還是比較抽象不知道她是什麼玩意?只好找一下,她的定義了。
Web Service 是一種由 W3C 定義的應用服務開發規範,使用 client-server 主從架構,通常使用 WSDL 定義服務介面,使用 HTTP 協議傳輸 XML 或 SOAP 訊息,也就是說,它是一個基於 Web(HTTP)的服務架構技術,既可以執行在內網,也可以在適當保護後執行在外網。
OK,直白來說,web service 是一種開發規範,規範即約定稍微有些強制執行的意味。她和 web Server 完全不是一種型別的東西,她比較虛是一個組織對某些行為的約束,告訴特定的人群,啥事能做,啥事不能做,啥事應該咋做web service是提供業務應用的軟體服務

web伺服器和web容器區別是什麼呢?

回覆:

這裡首先要理解web,web就是指的http。web server就是提供http服務的server、web service就是執行在http協議上的服務介面規範。
自己寫的是tcp server,就不是web server。
service通常是指服務程式,跑在server上,server可以理解成容器、平臺。web伺服器主要提供靜態資源,而web容器可以執行Java、php等程式提供動態服務。

“Web伺服器”,也就是說專門提供http服務的伺服器軟體。

可以通過User-Agent來區分爬蟲,那他們能假裝成瀏覽器嗎?怎麼假裝成瀏覽器呢?

回覆:

當然可以了,只要把User-Agent的字串改成瀏覽器的就可以了,因為單從http報文上是區分不出客戶端的。
當然,後臺伺服器還可以從ip、訪問頻率等其他方式來判斷爬蟲,不會僅依賴User-Agent,因為它太容易被偽造了。

DN 即內容分發網路,它使用了 HTTP 的快取和代理技術,代替源站響應使用者請求。它可以快取源站資料,憑藉優秀的排程演算法,可以找到離使用者最近的節點,大幅縮短響應時間;而在現代網際網路體系中,CDN 已成為一項重要的基礎設施,除了基本的網路加速功能外,還提供負載均衡、安全防護、邊緣計算、跨運營商網路等功能,可以成倍放大源站伺服器的服務能力