MAC地址:設備到設備之間通訊時專用(從源主機到目標主機可能經由N臺路由設備)4html
IP地址:標記主機到主機之間通訊時專用mysql
TCP/UDP :提供進程地址 經過port number來標記web
進程地址:用TCP,UDP協議的端口標識,端口(16bits)sql
TCP :傳輸控制協議,面向鏈接的協議:通訊前須要創建虛擬鏈路,結束後拆除鏈路編程
0-65535緩存
UDP:User Datagram Protocol 無鏈接的協議 (QQ即時通訊類)服務器
0-65535網絡
dns :主機名稱解析時使用UDP,區域傳輸時用到TCP多線程
端口分配原則:併發
IANA:互聯網地址名稱分配機構
TCP/UDP都遵循此法則
0-1023:衆所周知,永久的分配給固定的應用使用,特權端口 22/tcp(ssh),80/tcp(http),443/tcp(https) 1024-41951:亦爲註冊端口,但要求並非特別嚴格,分配給程序註冊爲某應用使用,11211/tcp,11211/udp(memcached) ,3306/tcp(mysql) 41952~ :客戶端程序隨機使用的端口;動態端口或私有端口;可供本地臨時分配 其範圍的定義:/proc/sys/net/ipv4/ip_local_port_range
2、socket套接字
裸套接字:不調用傳輸層的tcp,udp協議封裝報文
特定功能:由用戶空間的進程完成
通用功能:由內核完成,用戶空間的進程須要使用通用的功能時,須要向內核空間發起syscall
socket :IPC的一種實現,容許位於不一樣主機(甚至同一主機)上不一樣進程之間進行通訊;數據交換:Socket API
內核由syscall提供,用戶空間中的進程須要與跨網絡的主機通訊時,須要基於socket編程方式
socket類型:tcp、udp、raw(裸套接字)
SOCK_STREAM :tcp套接字(無:數據段的標識)
SOCK_DGRAM :udp套接字(有:數據段的標識)
SOCK_RAM :裸套接字(非tcp/udp端口)
IPC :進程間通訊
socket domain
至少存在兩種socket類型(SOCK_STREAM、SOCK_DGRAM)
流:可靠的傳輸、面向鏈接、無邊界; (通訊信道創建後,不用考慮一個報文從哪開始到那結束,直接扔)
數據報:不可靠地傳遞、有邊界、無鏈接 (以寄信爲例,信封就是邊界) AF_INET IPv4 Address Family ipv4地址家族 AF_INET6 IPv6 Address Family ipv6地址家族 AF_UNIX UNIX Address Family 同一主機上不一樣進程之間通訊時使用(基於unix socket通訊-----不會到通訊子網)
套接字相關的系統調用
Ipv4
分類: A:1-127 B:128-191 C: 192-223 D: 組播 224-239 E:240-254 私有地址: A:10.0.0.0/8 B:172.16.0.0/16-172.31.0.0/16 C:192.168.0.0/24-192.168.255.0/24
3、tcp協議
基於socket通訊、SOCKET_STREAM
4、跨Internet的主機間通信
MTU:最大傳輸單元
分段:當MTU大小大於1500bytes時,須要對ip報文分段
分片:路徑MTU最小值小於1500時,須要分段
5、HTTP協議
Hyper Text Transfer Protocol 傳輸超文本的協議 80/tcp SOCKET_STREAM
html :編程語言,超文本標記語言
超文本:由html編程語言開發出的文本(網頁中的連接點擊後跳轉至另外一個網頁,連接叫超文本連接)
超文本格式
MIME:多用途互聯網郵件擴展 ,實現基於文本傳輸協議發送非文本數據
1.0 支持MIME,擴展Method, 緩存機制薄弱
2.0 MIME,Method,緩存機制增強,spdy優點整合而來(spdy加速資源的獲取)
工做模式
HTTP請求
HTTP響應
請求的內容: Web資源
一個頁面中有多個資源:每一個頁面是一個資源,每一個頁面有多個超連接,每一個連接對應一個資源
訪問入口: 給定的地址
被訪問的資源:頁面中引用的地址
盜鏈/跨站引用:網站中的資源來自其餘服務器上的資源
URL:用於描述某服務器某特定資源的位置
URI的子集:URL,URN(統一資源命名符)
URL格式
http協議版本:
HTTP/0.9 :原型版本,功能簡陋 HTTP/1.0 :第一個普遍使用的版本,支持MIME HTTP/1.1 :加強了緩存功能 HTTP/2.0 :
一次完整的http請求流程
一、接收客戶端請求<是否接收請求>
二、接收請求(併發響應模型)
接收來自於網絡的請求報文中對某資源的一次請求的過程
併發訪問響應模型(Web I/O):
多線程模型:一個進程生成N個線程,每一個線程響應一個用戶請求
事件驅動:調用libevent庫,實現事件驅動,水平觸發
一個Pv有多個資源,每一個資源是一個請求
持久鏈接:tcp鏈接創建後不斷開
非持久鏈接:每處理一個請求都有tcp3次握手,4次揮手的過程。
三、處理請求(解析請求報文)對請求報文進行解析,並獲取請求的資源及請求方法等相關信息
元數據:根據HTTP請求報文首部,獲取method
<method><URL><HTTP-VERSION>首行
Host:被請求的主機
Connection :鏈接方式
四、訪問資源(method、路徑映射)---獲取請求報文中請求的資源
web服務器,即存放了web資源的服務器,負責向請求者提供對方請求的靜態資源或動態運行後生成的資源,這些資源放置於本地文件系統某路徑下,此路徑一般稱爲DocRoot
DocRoot :/www/web
http://www.magedu.com/images/1.jpg
/www/web/images/1.jpg
web服務器資源路徑映射方式:
a)DocRoot定義的路徑即爲映射的路徑
b)Alias
c)虛擬主機DocRoot
d)用戶家目錄DocRoot
五、構建響應報文(打包封裝爲httpd響應報文)
資源的MIME類型
顯示分類
魔法分類
協商分類
URL重定向:
web服務構建的響應並不是客戶端請求的資源,而是資源另一個訪問路徑
六、發送響應報文
七、記錄一次事務的日誌(用戶行爲分析)