1. 程式人生 > >http協議及httpd基礎

http協議及httpd基礎

list com 無連接 分類 動態 普通用戶 端口 中間 相同

ip是主機和主機之間的通信,只要中間沒有NAT,源Ip和目標IP地址不變
mac是設備和設備之間的通信
技術分享圖片
任何一個進程需要用到某個端口時,需要向內核申請使用,內核通過套接字標記(進程間的通信,
允許不同或相同主機上不同進程之間進行通信,數據交換),調用內核中的tcp註冊端口來實現
進程間通信。

tcp 傳輸控制協議,連接是雙向的
udp ,數據報協議,無連接的協議
技術分享圖片
IANA:
0-1023已被永久分配,特權端口,只有管理員有權限使用
1024-41951,亦為註冊端口,普通用戶可用,分配給程序註冊為某應用使用
41952+ 客戶端程序隨機使用的端口

三種套接字(ip地址加端口組合的結果):
tcp/udp 0-65535 動態或者私有端口,可供本地或者臨時使用

裸套接字:不調用tcp和udp協議,直接調用Ip,封裝報文,傳輸給目標主機,進行通信
報文被封裝在IP報文不能超過MTU(最大傳輸單元,1500個字節,包含源目標地址)大小。

IPV4分類
A 1-127
B 128-191
C 192-223
D 240-255
私有地址
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

TCP協議特性
建立連接,三次握手
將數據打包成段,並生成校驗和CRC-32
確認,和重傳和超時
排序:邏輯序號
流量控制,滑動窗口算法
擁塞控制:慢啟動和擁塞避免算法

SOCKET Domain
AF_INET ipv4
AF_INET6 ipv6

AF_UNIX 同一主機上不兩只進程之前通信時使用
每類套接字都至少提供兩種socket:流和數據報
流 可靠地傳遞,面向連接,我邊界
數據報 不可靠的傳遞,有邊界,無連接

套接字相關的系統調用
socket():創建一個套接字
bind()綁定,表示需要使用
listen()監聽
accept()接收請求
connect()請求連接建立
write()向套接字文件寫數據,相當於通過套按字向另外一個主機發送
read()從緩沖接收
send,recv,sendto,recvfrom()

http
html
css
js

MIME 多功能互聯網郵件擴展,使的能夠使用文本協議發送非文本文件
web資源 :web resource

靜態文件 jpg gif html txt js css mp3 avi
動態文件 php jsp

URI Uniform Resource Identifier 統一資源標識符
URL 統一資源定位符,用於描述某服務器特定資源的位置
Scheme://server:port/path/to/resource
URN

http協議
HTTP/0.9
HTTP/1.0 支持MINE
HTTP/1.1 增強了緩存功能
HTTP/2.0

http協議及httpd基礎