Web應(yīng)用程序基于HTTP等網(wǎng)絡(luò)應(yīng)用層協(xié)議贸伐,采用請(qǐng)求-響應(yīng)的工作模式抡草,其流程一般為:
1砚哗、客戶端把請(qǐng)求發(fā)送到服務(wù)器的Web應(yīng)用程序龙助,Web應(yīng)用程序接受請(qǐng)求后進(jìn)行相關(guān)處理,并把客戶端請(qǐng)求的資源以文本蛛芥、圖片提鸟、網(wǎng)頁(yè)等形式返回到客戶端。
2仅淑、由于解析HTML文件一般為瀏覽器称勋,所以將這種架構(gòu)稱為B/S架構(gòu)(Browser/Server)。
相對(duì)于傳統(tǒng)的C/S架構(gòu)(Client/Server)的應(yīng)用程序而言涯竟,B/S架構(gòu)的Web應(yīng)用程序具備以下優(yōu)勢(shì):
1赡鲜、發(fā)送到集中部署空厌,無需安裝客戶端程序;
2银酬、集中管理嘲更,業(yè)務(wù)邏輯在服務(wù)端進(jìn)行維護(hù);
3揩瞪、數(shù)據(jù)共享赋朦,所有客戶端訪問同一服務(wù)器的數(shù)據(jù);
4李破、更強(qiáng)的平臺(tái)無關(guān)性宠哄,不必關(guān)心客戶端的軟硬件平臺(tái)。
什么是C/S架構(gòu)嗤攻?
Client/Server架構(gòu)毛嫉,即客戶端/服務(wù)器架構(gòu)。是大家熟知的軟件系統(tǒng)體系結(jié)構(gòu)屯曹,通過將任務(wù)合理分配到Client端和Server端狱庇,降低了系統(tǒng)的通訊開銷,需要安裝客戶端才可進(jìn)行管理操作恶耽。
URL
網(wǎng)絡(luò)中的任何信息資源都有一個(gè)唯一的地址密任,該地址被稱為統(tǒng)一資源定位符,Uniform Resource Locator.
HTTP請(qǐng)求(Request)包含三個(gè)部分
1偷俭、方法-URI-協(xié)議/版本浪讳;
2、請(qǐng)求頭涌萤;
3淹遵、請(qǐng)求正文。
HTTP 1.1規(guī)范定義了7種請(qǐng)求類型
1负溪、GET:獲取資源透揣;
2、POST:傳輸實(shí)體文本川抡;
3辐真、PUT:傳輸文件;
4崖堤、DELETE:刪除資源或文件侍咱;
5、HEAD:獲取響應(yīng)報(bào)文頭部密幔;
6楔脯、OPTIONS:詢問支持的方法;
7胯甩、TRACE:追蹤路徑昧廷。
論GET與POST的區(qū)別:
最直觀的區(qū)別就是GET把參數(shù)包含在URL中堪嫂,POST通過request body傳遞參數(shù)。
GET在瀏覽器回退時(shí)是無害的麸粮,而POST會(huì)再次提交請(qǐng)求溉苛。
1、GET產(chǎn)生的URL地址可以被Bookmark弄诲,而POST不可以愚战;
2、GET請(qǐng)求會(huì)被瀏覽器主動(dòng)cache齐遵,而POST不會(huì)寂玲,除非手動(dòng)設(shè)置;
3梗摇、GET請(qǐng)求只能進(jìn)行url編碼拓哟,而POST支持多種編碼方式;
4伶授、GET請(qǐng)求參數(shù)會(huì)被完整保留在瀏覽器歷史記錄里断序,而POST中的參數(shù)不會(huì)被保留;
5糜烹、GET請(qǐng)求在URL中傳送的參數(shù)是有長(zhǎng)度限制的违诗,而POST么有;
6疮蹦、對(duì)參數(shù)的數(shù)據(jù)類型诸迟,GET只接受ASCII字符,而POST沒有限制愕乎;
7阵苇、GET比POST更不安全,因?yàn)閰?shù)直接暴露在URL上感论,所以不能用來傳遞敏感信息绅项;
8、GET參數(shù)通過URL傳遞比肄,POST放在Request body中趁怔。
HTTP是什么?
HTTP是基于TCP/IP的關(guān)于數(shù)據(jù)如何在萬維網(wǎng)中如何通信的協(xié)議薪前。
HTTP響應(yīng)(Response)包含三個(gè)部分
1、協(xié)議-狀態(tài)碼-描述关斜;
2示括、響應(yīng)頭信息;
3痢畜、響應(yīng)正文垛膝。
HTTP之狀態(tài)碼:
1**(信息類):表示接收到請(qǐng)求并且繼續(xù)處理鳍侣;
2**(響應(yīng)成功):表示動(dòng)作被成功接收、理解和接受吼拥;
3** (重定向類):為了完成指定的動(dòng)作倚聚,必須接受進(jìn)一步處理;
4** (客戶端錯(cuò)誤類):請(qǐng)求包含語(yǔ)法錯(cuò)誤或不能正確被執(zhí)行凿可;
5** (服務(wù)端錯(cuò)誤類): 服務(wù)器不能正確執(zhí)行一個(gè)正確的請(qǐng)求惑折。
XML
XML——eXtensible Markup Language 可擴(kuò)展標(biāo)記語(yǔ)言
XML語(yǔ)法規(guī)范:
1、XML規(guī)范將一個(gè)XML文檔分為序言和文檔元素兩個(gè)部分枯跑;
2惨驶、其中序言部分包含XML聲明、注釋和文檔類型定義等敛助;文檔元素部分則包含元素粗卜、子元素、屬性和文本等纳击;
3续扔、XML聲明:XML聲明必須是文檔的第一行。
<?xml version ="1.0" encoding="UTF-8" standalone="yes"?>?
XML語(yǔ)法規(guī)范——根元素:
1焕数、每個(gè)XML文檔有且只有一個(gè)根元素纱昧;
2、根元素是一個(gè)完全包含文檔中其他所有元素的元素百匆。
元素:
1砌些、一個(gè)元素由開始標(biāo)記、結(jié)束標(biāo)記加匈、可選屬性和可選文本組成存璃。
DTD
DTD的缺點(diǎn):
1、DTD不遵守XML語(yǔ)法雕拼,導(dǎo)致寫XML文檔時(shí)使用一種語(yǔ)法纵东,寫DTD時(shí)又用另一種語(yǔ)法;
2啥寇、DTD數(shù)據(jù)類型有限偎球,不可擴(kuò)展,不支持命名空間辑甜。
Schema的特點(diǎn):
1衰絮、Schema基于XML語(yǔ)法,所以可以使用解析XML的工具解析Schema文件磷醋;
2猫牡、Schema擴(kuò)充了數(shù)據(jù)類型,還支持元素的集成和屬性等邓线。