http-web基礎

Web基礎:

1.1網絡基礎tcp/ip

計算機兩邊想要通信,雙方就要基於相同的方法。基於c/s機制,確定誰是客戶端,服務端。不同的硬件,操作系統之間的通信,所有的一切需要一種規則,我們就把這種規則稱爲協議。

協議中存在各種各樣的內容,像這樣把相關聯的協議集合起來總稱爲tcp/ip


wKiom1YiLi_ApTYgAAFs2DbOx7c202.jpg


利用tcp/ip通信,發送方會從上往下走,發送到服務器端在從下網上走。

 

首先服務器方要先啓動,並根據請示提供相應服務:

1、打開一通信通道並告知本地主機,它願意在某一個公認地址上接收客戶請求。

2、在傳輸層把從應用層接受到的請求報文分割,

3、接收到重複服務請求,處理該請求併發送應答信號。

4、返回第二步,等待另一客戶請求

5、關閉服務器。

 

tcp協議:面向連接協議,可靠,穩定。通信前建立鏈路,結束後拆除鏈路。端口範圍:0-65535

udp協議:無連接協議,速度快。端口範圍:0-65535

IANA

0-1023:永久的分配給固定的應用使用:

1024-41951:註冊端口,要求並不是特別嚴格,分配給程序註冊爲某應用使用。

 

套接字

Socketipc的一種實現:允許位於不同主機(甚至同一主機)上,不同進程之間通信,實現數據交換。

tcp套接字:SOCK_STREAM 

udp套接字:SOCK_DGRAM 

裸套接字:SOCK_RAM

 

tcp協議的特性

tcp位於傳輸層,提供可靠的字節流服務:

字節流服務:將大塊數據分割成以報文段爲單位的數據包進行管理。

可靠性傳輸:採用三次握手策略,當tcp把數據包傳送過去之後,會確認數據包是否到達。如果數據包莫名中斷,tcp協議會再次發送相同數據包。

 

wKioL1YiLlPSOTrYAAELagFvJmQ710.jpg

 

套接字系統調用:

socket():創建一個套接字;

bind():綁定

listen():監聽

accept():接收請求

connect():請求連接建立

write():發送

read():接收

send(),rcv(),sendto(),recvfrom()

 

網頁基礎知識:

httphyper text transfer protocol

Html:編程語言,超文本標記語言;

<html>

<head>

<title>TITLE</title>

</head>

<body>

<h1></h1>

<p>blabla <a href=http://www.a.com/log.jpg>blabla</a></p>

 

</body>

</html>

 

CSS:層疊樣式表

Jsjavascript

 

URLURI

URL:Uniform Resource Locator)統一資源定位符

URI:(Uniform Resource ldentifier)同一資源標識符

URI的格式:

scheme://user[email protected]:80/html/index.html.uid=1#ch1

方案名 // 用戶名,密碼@主機名稱:端口/帶層次的文件路徑?查詢字段#片段標識符

 

 

http協議版本:

http/0.9:原型版本

http/1.0

http/1.1

http/2.0

 

1.2http請求模型:

http協議是客戶端發送請求,服務器端迴應。

wKiom1YiL06Q_1VZAACZ9_9Rgoo069.jpg


 

一次完整的http請求;

1.建立請求

持久連接

非持久連接

2.接收請求:

接受來自網絡的請求報文中對某一個請求的過程:

併發響應模型(web I/O):

單進程I/O結構:啓動一個處理用戶請求,而且一次只處理1個,多個請求被串行響應:

多進程I/O結構:並行啓動多個進程,每個進程響應一個請求

複用I/O結構:一個進程響應多個請求:

多線程模型:一個進程生成多個線程,每個線程響應多個請求;

事件驅動

複用的多進程I/O結構:啓動多個(m)進程,每個進程響應n個請求;

 

3.處理了請求:對請求報文進行分析,並獲取請求的資源以及請求的方法相關信息

元數據:請求報文首部

<method><URL><VERSION>

Host:www.a.com 請求的主機名稱

Connection

 

4.訪問資源:獲取請求報文中請求的資源

web服務器,既存放了web資源的服務器,負責向請求者提供對方請求的靜態資源,或動態運行後生成的資源,這些資源放在本地某個路徑下,此路徑稱爲DocRoot

/var/www/html/image/Log.jpg

www.a.com/image/Log.jpg

 

web服務器資源路徑映射方式:

DocRoot

Alias

虛擬主機DocRoot

用戶家目錄DocRoot

 

5.創建響應報文

資源MIME類型:

顯示分類:

魔法分類:

協商分類:

重定向:

web服務器構建響應並非客戶端請求的資源,而是資源另外一個訪問路徑

 

6.發送響應報文

 

7.記錄日誌

 

http服務器程序:

httpdapache

Nginx

 

應用程序服務器:

IIS

Tomcatjetty

 

httpd的特性:

高度模塊化:core+modules

DSOdynamic shared o'bject

MPM:多線程處理模塊

Prefork:多進程模型,每個進程響應一個請求:

一個主進程,負責生成n個子進程,子進程也成爲工作進程,每個子進程處理一個用戶請求,即使沒有用戶請求,也會預先生成多個空閒進程,隨時等待請求到達,最大不會超過1024個。

 

Worker:多線程模型,每個線程響應一個請求;

一個主進程:生成多個子進程,每個子進程負責生成多個線程,每個線程響應一個請求;

m進程,n線程:m*n

 

Event:事件驅動模型,每個線程響應n個請求:(httpd-2.4)

一個主進程:生成n個子進程,每個子進程直接n個請求;

m*n

 

httpd的功能特性:

虛擬主機

IpportFQDN

CGI:通用網關接口 實在動態頁面的技術。

反向代理

負載均衡

路徑別名

豐富的認證機制:basicdigest

支持第三方模塊

 

 

 



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章