一、web服務
1、web服務
早期web服務使用http/0.9協議,僅支持純文本(包括超鏈接)HTML;
HTML:超文本標記語言,是專門用來開發超文本的開發語言;
URI:統一資源標識符,用於定義全局范圍內某一獨立資源的命名方式;URI就像因特網上郵寄地址一樣,在世界范圍內唯一標識並定位信息資源。
URL:統一資源定位符,是URI的子對象,用於描述在互聯網上互聯網資源的統一表示格式;
格式:協議://主機:(端口)/路徑/文件
2、web資源
可以通過統一資源定位符唯一標記,能夠讓客戶端訪問的文件等資源,多個資源可能被整合為一個html文檔。
web服務器是web資源的宿主。web資源是web內容的源頭。最簡單的web資源就是web服務器文件系統中的靜態文件。這些文件可以包含任意內容:文本文件、HTML文件、微軟的word文件、Adobe的acrobat文件、JPEG圖片文件、AVI電影文件,或所有其他你能想到的格式。
但是資源不一定非得是靜態文件。資源還可以是根據需要生成內容的軟件程序。這些動態內容資源可以根據你的身份、所請求的信息或每天的不同時段來產生內容。他們可以為你現實照相中活生生的照片,也可以幫你進行股票交易,搜索房產數據庫,或者從在線商店中購買禮物等。
3、http方法
http方法就是獲取web資源的方法;
http/1.0:GET、POST、PUT、DELETE等
MIME:多用途互聯網郵件擴展;將非文本數據在傳輸前重新編碼為文本格式,接收方能夠使用相反的方式將其重新還原為原來的格式,還能夠調用相應的程序來打開此文件。 MIME只用作將文本與視頻及圖片進行轉換。
4、 web服務請求與響應簡單過程

5、web服務器的主要操作
(1)建立連接----接受或拒絕客戶端連接請求;
(2)接收請求----通過網絡讀取http請求報文;
(3)處理請求----解析請求報文並作出相應的動作;
(4)訪問資源----訪問請求報文中相關的資源;
(5)構建響應----使用正確的首部生成http響應報文;
(6)發送響應----向客戶端發送生成的響應報文;
(7)記錄日志----當已經完成http事物記錄進行日志文件。
二、http協議
1、http協議基礎
http:超文本傳輸協議,默認情況下,http協議就是用來實現客戶端到服務器端數據傳輸的;並且http協議默認只傳輸文本文件(數據流)。
2、http的工作機制
(1)首先會建立tcp連接,通過tcp80端口進行連接;
(2)http發送請求
(3)http響應

注意:請求時非常多的。(前端語言將很多資源進行划分,而固定的服務器只能提供固定的資源,所以,很可能請求了一次,事實上生成了狠多進程。)
3、多處理模塊(MPM)
http支持MPM,因為http提供的進程訪問數量有限,所以,我們要啟用一些訪問機制,來處理高並發流量。
(1)MPM支持三種模式:
prefork----隊列模式(默認模式)
work-------多線程模式
event------多線程並發處理模式(不穩定,不建議使用)
prefork模式:這種模式采用預派生子進程的方式,他沒有線程的概念,是多進程模式,一個子進程處理一個連接,穩定,響應快,每個子進程之間相互獨立,但是每個進程都要占用內存,消耗系統的資源過高。
work模式:一個進程會生成很多個線程,一個線程處理一個http的請求,相比prefork模式更加節內存資源,但是,當一個線程崩潰,整個進程就會連同其所有線程一同掛掉。
event模式:一個線程可以處理多個請求。
(2)如何修改MPM模式
在/etc/sysconfig/httpd下修改:
#HTTPD=/usr/sbin/httpd.worker //去掉#即可
修改完成要重新加載配置,才可以生效。
4、http的版本
HTTP/0.9 最早的被廣泛采用的版本 原型版本,不支持多媒體內容,只支持純文本傳輸。
HTTP/1.0 第一個廣泛使用的版本,現在依然被使用,能支持多媒體,但是緩存機制能力不足;
HTTP/1.1 增強了緩存功能,當前使用的版本;
HTTP/2.0 2001年就出來了,現在基於web的應用多數使用HTTP/2.0版本(新版本),它參考了谷歌的spdy協議,所以我們有理由相信HTTP/2.0會被廣泛使用。
5、cookie機制
(1)原理
(2)分類(存在客戶端)
永久cookie -- 把cookie值存在硬盤上(這里需要指定cookie的保存時間),存在硬盤中,有一個過期時間,除非用戶手動清除或到了過期時間,否則硬盤中的cookie不會被刪除,其存在時間是長期的。
臨時cookie -- 把cookie值保存在內存上(重啟流量器即失效),內存cookie由瀏覽器維護,保存在內存中,當瀏覽器關閉之后就消失了,存在時間很短。
(3)http請求和cookie交互過程

(4)cookie的缺點
cookie會被附加到每一個http請求中,增加了流量;
在http傳輸過程中cookie是明文傳輸,所以很不安全;
cookie限制在4KB左右,對於復雜的存儲需求是不夠用的。
6、http模式(method)
GET 普通的請求
HEAD 之請求網站的頭部信息
POST 推送用戶名或密碼的時候使用的
PUT 推送比較大的資源的時候使用的
DELETE 發起刪除對應資源的命令
TARCE 容許客戶端查看,被修改后的http請求報文(因為中間通過了代理服務器,而代理服務器會修改我們的請求表文)
OPTIONS 客戶端去咨詢服務器端所能支持模式;
還有其他很多的擴展模式 -- 例如:MOVE LOCK 等等。
7、狀態碼(status)
100-199 表示服務器信息回應 100 101
200-299 表示成功的請求
常見的--200 ok 201 create
300-399 表示重定向
301 請求的URL指向的資源已經被刪除:但在響應報文中通過首部Location指明了資源現在所處的新位置;這個是永久重定向:Moved Permently
302 與301相似,但是在響應報文中,通過Location指明了資源現在所處的臨時新位置;Found
304 客戶端發出了條件式請求,但是服務器發現客戶端的緩存資源未曾發生改變,則通過響應狀態碼通知客戶端:Not Modified
400-499 客戶端錯誤狀態碼
401 需要輸入賬號和密碼認證方能訪問資源,Unauthorizad
403 請求被禁止:forbidden
404 服務器無法找到客戶端請求的資源:Not Found
500-599 服務器端錯誤
500 服務器內部錯誤:Internal Server Error
502 代理服務器從后端服務器收到一條偽響應,Bad Gatway
