1、port number(iana,網際網路位址授權機構規定)
tcp:傳輸控制協定,面向連接配接的協定;通信前需要建立虛拟鍊路,結束後拆除鍊路。
udp:user datagran protocol,無連接配接的協定。
0-1023:衆所周知,永久的配置設定給固定的應用使用,特權端口(22/ssh,80/http)。
1024-41951:亦為注冊端口,但要求并不是特别嚴格,配置設定給程式注冊為某應用使用(11211/tcp,3306/tcp)
41952-65535:用戶端程式随機使用的端口:動态端口,或私有端口;其範圍的定義在檔案中:(/proc/sys/net/ipv4/ip_local_port_range)。
2、socker:ipc的一種實作,允許位于不同主機(甚至同一主機)上不同程序之間進行通信。
socket api(封裝了核心中的socket通信相關的系統調用)
(1)、根據傳輸層協定分類:
sock_stream:tcp套接字
sock_dgran:udp套接字
sock_raw:裸(raw)套接字
(2)、根據套接字所使用的位址格式,socket domain:
af_inet:address family,ipv4的位址
ad_inet6:ipv6的位址
af_unix:同一主機上不同程序之間通信時使用
(3)、套接字相關的系統調用:
socket():建立一個套接字
bind():綁定
listen():監聽
accept():接受請求
connect():請求連接配接建立
write():發送
read():接收
3、tcp協定的特性
建立連接配接:三次握手
将資料打包成段:校驗和(crc-32)
确認、重傳以及逾時
排序:邏輯序号
流量控制:滑動視窗算法
擁塞控制:慢啟動和擁塞避免算法
4、tcp fsm:tcp finite state machine,有限狀态機
closed、listen、syn_sent、syn_recv、established、fin_wait1、 close_wait、fin_wait2、last_ack
1、http:hyper text transfer protocal,超文本傳輸協定
c/s架構:用戶端-伺服器,實作該協定的程式有httpd,nginx,lighttpd......
工作模式:一次httpd事務:請求<-->響應
http請求封包:http request
http響應封包:http response
2、http協定版本
1)http/0.9:原型版本隻能傳輸文本檔案,僅有get方法傳輸到用戶端
2)http/1.0:第一個廣發使用的版本,支援mime機制、cache支援、method(請求方法)
mime:multipurpose internet mail extesion多用途網際網路郵件擴充,支援非文本編碼傳輸後再解碼還原
3)http/1.1:增強了緩存功能
4)http/2.0:借鑒spdy對1.0多方面改進,大大提升性能
spdy是google開發的基于tcp的應用層協定,用以最小化網絡延遲,提升網絡速度,優化使用者的網絡使用體驗。
spdy對http協定的增強。新協定的功能包括資料流的多路複用、請求優先級以及http報頭壓縮。
3、web資源:web resources
4、并發通路響應模型(web i/o):
5、一次完整的http請求處理過程
1、httpd:apache純粹的靜态伺服器
版本:1.3、2.0、2.2、2.4。centos6預設使用2.2;centos7預設使用2.4
a patchy server(一個充滿更新檔的伺服器)
asf:apache software foundation(apache軟體基金會)最早的項目,官方站點:httpd.apache.com
2、httpd的特性
高度子產品化:core + modules
dso:dynamic shared object
mpm:multipath processing modules
profork:多程序模型,每個程序響應一個請求:
一個主線程:複制生成n個子程序,子程序也稱為工作程序,每個子程序處理一個使用者請求;即便沒有使用者請求,也會預先生成多個空閑程序,随時等待請求到達:最大不會超過1024個。
worker:事件驅動模型,每個線程響應n個請求;
一個主程序,生成m個子程序,每個子程序負責生成多個線程,每個線程響應一個請求;
m程序,n線程:m * n
event:事件驅動模型,每個線程響應n個請求;
一個主程序,生成m個子程序,每個子程序直接響應n個請求 m * n
3、httpd的功能特性
4、httpd的請求方法
5、http協定首部
1)、通用首部
2)、請求首部
3)、實體首部
4)、響應首部
6、http狀态碼