19、http協議及web基礎服務
運行在用戶空間
應用層協議:http、https
傳輸層協議:tcp、udp、sctp
2、傳輸層端口劃分:
0-1023:特權端口,眾所周知的,永久的分配給固定的應用使用。
1024-41951:亦為註冊端口,但要求不是特別嚴格,分配給程序註冊為某應用程序使用;如mysql:tcp3306
41952+:客戶端程序隨機使用的端口,動態端口,或私有端口。其範圍定義在//proc/sys/net/ipv4/ip_local_port_range;
3、BSD socket:IPC的一種實現,允許位於不同主機(也可以是同一主機)上的進程之間進行通信,
socket API:封裝了內核中的socket通訊相關的系統調用。
4、TCP FSM:有限狀態機
closed:關閉
listen:監聽
SYN_SENT:
SYN_RECV
establish
FIN_WAIT1 :分手等待階段1
CLOSE_WAIT
FIN_WAIT2
LAST_WAIT
TIME_WAIT
CLOSED
5、socket類型:
根據傳輸層協議劃分
socket_stream:tcp套接字
socket_dgram:udp套接字
socket_raw:裸套接字
根據套接字所使用的地址格式(socket domain)劃分:
AF_INET:address family,ipv4
AF_INET6:address family,ipv6
AF_unix:同一主機上的不同進程間,基於socket套接字通訊使用的一種地址;unix_sock(不進行向tcp下層封裝,而是將進程放在內存中作為一個文件,供其他進程訪問通訊)
6、tcp協議的特性:
①、建立連接:三次握手
②、將數據打包成段,檢驗和(crc32)
③、有確認、重傳、超時機制
④、排序:基於邏輯號控制
⑤、流量控制:滑動窗口算法
⑥、擁塞控制:慢啟動和擁塞避免算法
7、http:hyper text transfer protocol:應用層協議,是一種文本協議,使用tcp:80端口,
html:hyper text mark language:超文本標記語言,它是一種編程語言。
css:cascading style sheet :定義網頁樣式
js:javascript;腳本開發語言,客戶端腳本(在客戶端運行),源超文本文件下載到客戶端引擎上運行;和java沒有關系;
8、wen服務有兩種開發技術:
客戶端技術:JavaScript
服務端技術:php、jsp (服務端腳本,在服務端運行)
9、http:
文本協議,意味著傳輸時需要將html轉換成ASCII碼傳送,圖片是二進制存儲的,早期是不能用http傳輸的。
協議版本:
http/0.9 :原型版本,功能少且不足、簡陋
http/1.0 :引入了cache、mime、method
mime:multipurpose internet mail extension:多用途互聯網郵件拓展協議;它能夠傳輸非文本信息,對不同格式文件進行編碼
method:GET、POST、HEAD、PUT、DELETE、TRACE、OPTIONS...等等
http/1.1:增強了緩存功能
http/2.0:
http協議工作模式:
http請求報文:http request
http響應報文:http response
註意:一次http事物:由一個http request和對應的一次http response組成的事件。
web資源:web resource,web由(很多)資源組成。
靜態資源:圖片、jpg、png、text、js、css、mp3、
靜態資源無需服務器做出額外處理,客戶端請求,服務端直接發送資源
動態資源:服務端需要通過執行程序做出處理,發送給客戶端的是程序的運行的結果,如php、jsp
註意:一個頁面展示的資源可能有多個;每個資源都需要單獨請求。
web資源的標識機制:URL,uniform resource locator:統一資源定位符,用於描述服務器某特定資源的位置。
URL格式:scheme://server[:port]/PATH/TO/SOMESOURCE
URL格式示例:http://www.sina.com.cn/index.html
scheme:指明協議,http、ftp等
server[:port] :www.sina.com.cn //默認80端口
文件路徑 :index.html;可省略,默認路徑(主頁面)
10、一次完整的http請求處理過程(服務器端)
①、建立或處理連接:接受請求或拒絕請求
②、接收請求:接收來自於網絡上的主機請求報文中對某些特定資源的一次請求的過程,經過三次握手和四次斷開。
③、處理請求:對請求報文進行解析,獲取客戶端請求的資源及請求方法等相關信息
④、訪問資源:獲取請求報文中請求的資源(一般是到硬盤上查找資源,需要磁盤I/O)
⑤、構建響應報文
⑥、發送響應報文
⑦、記錄日誌:用於分析用戶行文
19、http協議及web基礎服務