一闹啦、什么是web
在百科的詞條上如下解釋什么是web:
web(World Wide Web)即全球廣域網(wǎng)劫窒,也稱為萬維網(wǎng)湃窍,它是一種基于超文本和HTTP的椎麦、全球性的宰僧、動態(tài)交互的、跨平臺的分布式圖形信息系統(tǒng)观挎。是建立在Internet上的一種網(wǎng)絡(luò)服務(wù)琴儿,為瀏覽者在Internet上查找和瀏覽信息提供了圖形化的、易于訪問的直觀界面嘁捷,其中的文檔及超級鏈接將Internet上的信息節(jié)點(diǎn)組織成一個(gè)互為關(guān)聯(lián)的網(wǎng)狀結(jié)構(gòu)
超文本是用超鏈接的方法造成,將各種不同空間的文字信息組織在一起的網(wǎng)狀文本。超文本更是一種用戶界面范式雄嚣,用以顯示文本及與文本之間相關(guān)的內(nèi)容百度
http :Hyper Text Transfer Protocol,超文本傳輸協(xié)議晒屎,所有的www文件都遵循這一原則,它是TCP/IP協(xié)議的一個(gè)應(yīng)用層協(xié)議缓升,用于定義WEB瀏覽器與WEB服務(wù)器之間交換數(shù)據(jù)的過程鼓鲁。客戶端連上web服務(wù)器后港谊,若想獲得web服務(wù)器中的某個(gè)web資源骇吭,需遵守一定的通訊格式,HTTP協(xié)議用于定義客戶端與web服務(wù)器通迅的格式歧寺。
我們習(xí)慣性的把電腦端根據(jù)架構(gòu)方式不同燥狰,簡單分為 B/S 架構(gòu)和 C/S 架構(gòu) ,而訪問web網(wǎng)頁就是 B/S 架構(gòu)斜筐,需要瀏覽器browser瀏覽器龙致、server服務(wù)器、DB數(shù)據(jù)庫顷链,才能夠訪問到web網(wǎng)頁净当。
web網(wǎng)頁可分為靜態(tài)網(wǎng)頁和動態(tài)網(wǎng)頁。靜態(tài)網(wǎng)頁一般一html和htm結(jié)尾蕴潦,有如下特點(diǎn):
- 和服務(wù)器沒有數(shù)據(jù)交互像啼,不會因?yàn)橛脩舻母淖兌淖儯踩栋碚撋蠜]有攻擊漏洞
- 每次修改更新網(wǎng)頁都需要修改服務(wù)器上html文件
- 靜態(tài)網(wǎng)頁除了包含文本外還包括動畫忽冻、聲音、Flash文件此疹、滾動字幕等效果
動態(tài)網(wǎng)頁有一個(gè)標(biāo)志性符號 僧诚? 后面跟要傳遞的參數(shù)遮婶,有如下特點(diǎn):
- 網(wǎng)頁數(shù)據(jù)可以和服務(wù)器進(jìn)行數(shù)據(jù)交互,會因用戶的不同而發(fā)生改變
- 網(wǎng)站的更新在后臺就可以完成湖笨,但是不安全旗扑,容易被攻擊
- 動態(tài)網(wǎng)頁是html語言與 java、vb 慈省、vc 相融合臀防,從而通過改變數(shù)據(jù)庫和環(huán)境的改變而改變
二、常見web架構(gòu)組合
web server 可以解析動態(tài)網(wǎng)頁边败,現(xiàn)在網(wǎng)站基本是由靜態(tài)與動態(tài)相結(jié)合的網(wǎng)頁袱衷;解析http請求,并對相應(yīng)的數(shù)據(jù)進(jìn)行解析反饋給瀏覽器笑窜;還可以進(jìn)行項(xiàng)目的管理致燥,因?yàn)轫?xiàng)目都會放在服務(wù)器的目錄下。常見的關(guān)系型數(shù)據(jù)庫有 MySQL 排截、Oracle 嫌蚤、SQLServer等
根據(jù)web server 與database之間的搭配根據(jù)網(wǎng)站語言的不同而不同,常見搭配如下:
- php 頁面使用 Apache 服務(wù)器或 Tomcat 服務(wù)器進(jìn)行解析和托管項(xiàng)目
- asp 頁面使用微軟系統(tǒng)的 iis 服務(wù)器進(jìn)行解析和托管項(xiàng)目
- javascript 頁面使用 Tomcat服務(wù)器或者 jboss 服務(wù)器進(jìn)行項(xiàng)目托管和解析
三断傲、瀏覽器的工作原理
上面解釋了web所需要的 web server 和database 脱吱,下面介紹與用戶看的見的瀏覽器browser,常見的瀏覽器有微軟的 IE (內(nèi)核是 trident)艳悔、谷歌的 Chrome (內(nèi)核是webkit)急凰、蘋果的 safari (內(nèi)核是webkit)女仰,火狐瀏覽器 FireFox (內(nèi)核是gecko)猜年、歐朋瀏覽器 Opera(內(nèi)核是presto)。
瀏覽器主要由用戶接口疾忍、瀏覽器引擎乔外、渲染引擎、網(wǎng)絡(luò)一罩、js解釋器杨幼、ui 后端、數(shù)據(jù)庫構(gòu)成聂渊,下面以** 百度搜索瀏覽器為例** 說明瀏覽器的工作原理:
- 用戶訪問百度網(wǎng)頁差购,發(fā)送搜索瀏覽器請求到服務(wù)器
- 服務(wù)器對請求進(jìn)行解析,并將結(jié)果發(fā)送給數(shù)據(jù)庫
- 數(shù)據(jù)庫接收并處理請求汉嗽,并得到結(jié)果欲逃,將結(jié)果反饋給服務(wù)器
- 服務(wù)器接收結(jié)果反饋,對結(jié)果反饋進(jìn)行解析饼暑,并生成html文件稳析,放入http 響應(yīng) response中洗做,返回瀏覽器
- 瀏覽器解析http response,并創(chuàng)建 DOM 樹
- 瀏覽器下載 css 樣式彰居,對 DOM 樹進(jìn)行渲染
- 瀏覽器下載js诚纸,并執(zhí)行js程序
- 瀏覽器顯示響應(yīng)內(nèi)容,用戶看到搜索數(shù)據(jù)
四陈惰、DNS 解析
訪問互聯(lián)網(wǎng)網(wǎng)站畦徘,比如訪問百度,我們只需要輸入 http://www.baidu.com 我們就可以訪問到百度奴潘,為什么我們不需要輸入他的路徑呢旧烧?這就是 DNS 的功勞,下面是百度百科的解釋:
DNS(Domain Name System画髓,域名系統(tǒng))掘剪,因特網(wǎng)上作為域名和IP地址相互映射的一個(gè)分布式數(shù)據(jù)庫,能夠使用戶更方便的訪問互聯(lián)網(wǎng)奈虾,而不用去記住能夠被機(jī)器直接讀取的IP數(shù)串夺谁。通過主機(jī)名,最終得到該主機(jī)名對應(yīng)的IP地址的過程叫做域名解析(或主機(jī)名解析)
DNS 的工作過程:
- 操作系統(tǒng)先檢查本地的 hosts 文件是否有這個(gè)網(wǎng)址的映射關(guān)系肉微,如果有匾鸥,則調(diào)用這個(gè)IP地址映射,完成解析(hosts文件位置-->C:\Windows\System\drivers\etc\hosts)
- 如果hosts文件沒有此映射碉纳,則將該請求發(fā)送到本地域名服務(wù)器
- 如果本地沒有此映射勿负,則該請求發(fā)送到根域名服務(wù)器(13個(gè)根域名服務(wù)器--美國國防部(主根域名)---輔根域名12(美國9、日本1劳曹、英國1奴愉、瑞典1))
- 根域名服務(wù)器將數(shù)據(jù)返回給本地域名服務(wù)器,本地域名服務(wù)器將此映射保存到緩存铁孵,以備下次使用锭硼;本地域名服務(wù)器將結(jié)果返回
五、OSI七層模型
OSI七層模型全稱是open system interconnection蜕劝,開發(fā)系統(tǒng)互聯(lián)模型檀头,OSI采用了分層的結(jié)構(gòu)化技術(shù),共分七層岖沛,物理層暑始、數(shù)據(jù)鏈路層、網(wǎng)絡(luò)層婴削、傳輸層廊镜、會話層、表示層馆蠕、應(yīng)用層期升。例如發(fā)郵件惊奇,這之間的模型的轉(zhuǎn)換過程,從上到下:
- 應(yīng)用層:寫信
- 表示層:把心的內(nèi)容進(jìn)行加密
- 傳輸層:使用TCP協(xié)議提供可靠傳輸
- 網(wǎng)絡(luò)層:按照不同的地址進(jìn)行分析傳輸
- 鏈路層:打包
- 物理層:使用光纖或者無線信道傳輸
寫郵件的模型轉(zhuǎn)換過程播赁,從下到上:
- 物理層:使用光纖或者無線信道把數(shù)據(jù)傳輸過來
- 鏈路層:拆包
- 網(wǎng)絡(luò)層:確定收信地址
- 傳輸層:使用TCP協(xié)議傳輸信件
- 會話層:不同的用戶使用不同的郵箱收取信件
- 表示層:解密操作
- 應(yīng)用層:查看信件
六颂郎、TCP/IP協(xié)議
TCP transmission control protocol 傳輸控制協(xié)議,IP容为,網(wǎng)絡(luò)互聯(lián)協(xié)議乓序,internet protocol ,百度百科的解釋:
TCP/IP是一組用于實(shí)現(xiàn)網(wǎng)絡(luò)互連的通信協(xié)議坎背。Internet網(wǎng)絡(luò)體系結(jié)構(gòu)以TCP/IP為核心替劈。基于TCP/IP的參考模型將協(xié)議分成四個(gè)層次得滤,它們分別是:網(wǎng)絡(luò)訪問層陨献、網(wǎng)際互聯(lián)層、傳輸層(主機(jī)到主機(jī))懂更、和應(yīng)用層眨业。
主機(jī)A和主機(jī)B產(chǎn)生傳輸可概括為三次握手的過程:
第一次握手:主機(jī)A發(fā)送SYN=1,隨機(jī)產(chǎn)生一個(gè)隨機(jī)編碼SEQNUM=12345
第二次握手:主機(jī)B收到請求后沮协,向A發(fā)送SYN=1龄捡,ACK=1,確認(rèn)編碼acknum=12346慷暂,同時(shí)發(fā)送一個(gè)隨機(jī)編碼seqnum=54321
第三次握手:主機(jī)A收到后確認(rèn)acknum=12346和ack=1正確聘殖,然后再向主機(jī)B發(fā)送ack=1,acknum=54322
完成了三次握手行瑞,主機(jī)A和主機(jī)B開始傳送數(shù)據(jù)
七奸腺、HTTP協(xié)議
HTTP協(xié)議是超文本傳輸協(xié)議,是基于請求和響應(yīng)模式的無狀態(tài)蘑辑、無連接洋机、應(yīng)用層的協(xié)議坠宴;無狀態(tài)是指同一個(gè)客戶不管幾次訪問同一個(gè)服務(wù)器的頁面洋魂,服務(wù)器的響應(yīng)時(shí)間和第一次訪問時(shí)相同,無連接是指每次連接只能處理一次請求喜鼓。
http協(xié)議的URI格式 http://host[:port]/[abs_path]
http協(xié)議 主機(jī)名/IP地址 端口號(默認(rèn)80) 請求的資源
http協(xié)議由請求和響應(yīng)組成
請求:三部分構(gòu)成
- 請求行:method request-uri http-version
請求方法 請求的資源 http版本
請求方法有g(shù)et副砍、post等,常用這兩種方法 - 消息報(bào)頭 也稱為請求報(bào)頭庄岖,一般以Accept開頭
- 請求正文豁翎,請求的具體內(nèi)容
響應(yīng):三部分構(gòu)成
狀態(tài)行:格式為 http-version status-code reason-prase
http版本 狀態(tài)碼 狀態(tài)碼的描述 - 消息報(bào)頭
- 響應(yīng)正文
八、web測試分析
1隅忿、界面測試
- 圖形測試:整體界面風(fēng)格是否一致心剥;驗(yàn)證文字的正確性邦尊,文字的環(huán)繞正確性;鼠標(biāo)移到有特效的部位优烧,出現(xiàn)特效蝉揍,移開鼠標(biāo)特效消失;輪播圖片畦娄,將鼠標(biāo)一致上方又沾,滾動停止
- 導(dǎo)航測試:導(dǎo)航放在顯眼位置;導(dǎo)航分類是否正確熙卡,是否可以直觀了解整個(gè)頁面內(nèi)容
- 內(nèi)容測試:文本描述信息是否正確杖刷;所有標(biāo)題是否正確;鼠標(biāo)標(biāo)題智商驳癌,提示信息是否正確
- 表格測試:表格是否直觀滑燃;表格里的文字是否正確
2、功能測試 - 鏈接測試 :主要是測試鏈接中是否包含死鏈接颓鲜,鏈接可分為首頁鏈接不瓶、標(biāo)題鏈接、資訊鏈接灾杰、圖片鏈接蚊丐,可使用工具xenu檢查死鏈接
-獨(dú)立功能測試:針對獨(dú)立功能進(jìn)行測試分析 - 數(shù)據(jù)庫測試:功能和頁面初始化數(shù)據(jù)都要與數(shù)據(jù)庫進(jìn)行比對檢驗(yàn)
- 緩存儲測試F5刷新,Ctrl+F5強(qiáng)制刷新直接從服務(wù)器獲取數(shù)據(jù)艳吠,緩存可查看還有緩存保存天數(shù)的限制麦备,可針對性設(shè)計(jì)測試用例
- 兼容性測試:不同的瀏覽器,相同流量拿起的不同版本進(jìn)行測試
- 安全性測試:詳細(xì)見cookie和seeion的區(qū)別
-性能測試:響應(yīng)時(shí)間昭娩,頁面的加載速度凛篙,還有資源利用CPU、內(nèi)存栏渺、網(wǎng)絡(luò)呛梆、硬盤等