web測試基礎和方法

學習目標

1.認識互聯網

2.瞭解WEB系統的架構,瞭解WEB發展歷史

3.認識WEB核心技術,包括客戶端技術和服務端技術

======================================================

Internet和intranet

Internet:

定義:國際互聯網。它是由那些使用公用語言互相通信的計算機連接而成的全球網路。

起源:美國國防部高級研究計劃局的前身ARPA(是美國高級研究計劃署advanced research project agency的簡稱)建立的ARPAnet,該網於1969年投入使用。

目的:允許世界上數以億計的人們進行通訊和共享信息。

Intranet:

定義:是企業內部網。

特點:

1.相對封閉的網路環境

2.防火牆保護

3.有許可權控制

目的:使企業內部的祕密或敏感信息受到保護。

兩者的拓撲結構:

三種網路體系結構:

C/S(client/server)架構

胖客戶端(大多數指的是需要運行對應程序進行操作的軟體,帶有客戶端的,自己可操作性強的)

例如:360安全衛士、手機APP、QQ

B/S(browser/server)架構

瘦客戶端(一般指的是瀏覽器類型)

例如:瀏覽器(百度一下,你就知道,hao123_上網從這裡開始)

伺服器端實現事物邏輯

P2P(point-to-point)架構

點對點的類型

例如:飛秋

C/S模式優缺點

優點:

1.客戶端與伺服器的直接相連,響應速度快。

2.界面多樣性,滿足客戶個性化要求。

3.能實現複雜的業務流程。

4.面對有限羣體,高機密性

缺點:

1.客戶端安裝程序,不能夠實現快速部署安裝和配置。

2.兼容性差,各操作系統、多版本都要面對。

3.升級成本較高。

B/S模式優缺點

優點:

1.具有分佈性特點,可以隨時隨地進行查詢、瀏覽等業務處理。

2.業務擴展簡單方便,通過增加網頁即可增加伺服器功能。

3.維護簡單方便,只需要改變網頁,即可實現所有用戶的同步更新。

缺點:

1.個性化特點明顯降低,無法實現具有個性化的功能要求。

2.操作是以滑鼠為最基本的操作方式,無法滿足快速操作的要求。

3.頁面動態刷新,響應速度明顯降低。

WEB的特點:

1.Web是圖形化的和易於導航的

2.Web是與平臺無關的

3.Web是分散式的

4.Web是動態的

5.Web是交互的

WEB工作原理:

WEB伺服器的工作流程圖:

認識WEB站點的組成部分:

1.協議類型

2.主機名:域名和IP等價

3.埠號

4.頁面文件

5.附加部分:URL地址參數

常見的埠號:

·HTTP協議:80

·FTP協議:21

·SSH協議:22

·HTTPS 協議:443

·POP3協議:110

·SMTP協議:25

還有一些常見的服務:

·MySQL 資料庫:3306

·SQLServer 資料庫:1433

·0racle資料庫:1521

======================================================

WEB網路協議

課程內容

網路協議簡介

網路0SI七層模型

TCP/IP協議

UDP協議

http協議及介面請求類型

HTTPWatch工具的使用

Wireshark工具的使用

課程目標

>瞭解網路0SI七層模型

>瞭解TCP/IP協議

>瞭解UDP協議

>掌握http協議及介面請求類型

>掌握HTTPWatch工具的使用

>掌握Wireshark工具的使用

網路協議

什麼是網路協議:

網路協議是指網路上的一種通用的規範

網路傳輸過程傳遞的都是二級制數據,該數據如果沒有一種規範定義清楚,當數據接收端收到該數據包時,只能認為是一種天書,網路協議無非就是在定義某一個數據包的數據規則。

網路0SI模型

什麼是0SI模型?

0SI即Open System Interconnection 開放式系統互聯。是國際標準化組織(IS0)提出的一個試圖使各種計算機在世界範圍內互連為網路的標準框架,簡稱0SI。OSI模型分為七層。

7、應用層|處理網路應用

6、表示層|數據表示

5、會話層|主機間通信

4、傳輸層|進程間的連接

3、網路層|定址和最短路徑

2、鏈路層|介質訪問(接入)

1、物理層|二進位傳輸

思維導向:收發件

物理層Physical Layer

功能:完成機械、電子、定時介面通信信道上的原始比特流數據通路以及數據傳輸

設備:網卡,網線,集線器,中繼器,數據機

數據單元:比特(Bit)

數據鏈路層Data Link Layer

功能:介乎於物理層和網路層之間。數據鏈路層在物理層提供的服務的基礎上向網路層提供服務,其最基本的服務是將源自網路層來的數據可靠地傳輸到相鄰節點的目標機網路層(硬體地址定址)。

設備:網卡、網橋,交換機

數據單元:幀(Frame)

網路層Network Layer

網路層:建立網路連接並為上層提供服務,具備以下主要功能:

將網路地址(ip地址)翻譯成物理地址(mac地址),並且決定如何將數據從發送方路由到接收方定址和查找最短路徑。實現不同網路之間的連接,完成主機對主機的連接。

主要設備有:路由器、防火牆、多層交換機

數據單元:數據包(Packet)

傳輸層Transport Layer

傳輸層,是上面三層和下面三層的中轉站。為上三層提供可靠的傳輸服務、為下三層提供可靠的目的站點信息。

是端到端的交換數據的機制

數據單元:數據段

會話層Session Layer

會話層:建連接和管理會話

表示層:加解密、壓縮、編碼、轉換翻譯

應用層:各種應用程序協議,如HTTP、FTP、SMTP、POP3

TCP/IP協議

什麼是TCP/IP?

TCP/IP是「transmission Control Protocol/lnternet Protocol」的簡稱,即傳輸控制協議/互聯網路協議。

IP協議

IP--internet protocol,是Internet層(網路層)的協議。用於將多個包交換網路鏈接的,在源地址和目的地址之間傳送數據報。

ip協議頭:

TCP協議

tcp協議是傳輸層上的協議。TCP協議提供了一種端到端的、基於連接的、可靠的通訊服務。

TCP建立需要三次握手才能建立,而斷開連接則需要四次揮手。

TCP的頭部結構為:

TCP協議的三次握手:

示例:

A【FIN,ACK】--->B seq=292 ack=764

B【ACK】--------->A seq=(ack)764 ack=(seq+1)293

B【FIN, ACK】---->A seq=(ack)764 ack=(seq+1)293

A【ACK】-------->B seq=(ack)293 ack=(seq+1)765

UDP協議

定義

UDP(User_Data Protocol,用戶數據報協議)它是面向非連接的協議,它不與對方建立連接,而是直接就把數據包發送過去!UDP適用於一次只傳送少l量數據、對可靠性要求不高的應用環境。

UDP與TCP的區別

與TCP最大的差別在於它在建立連接前不會進行三次握手,屬於不可靠的傳輸。

優點:

可以顯著地提過性能

應用:

例如:ping命令、QQ、網路電視

HTTP協議

定義

超文本傳輸協議(HTTP,Hyper Text Transfer Protocol)是互聯網上應用最為廣泛的一種網路傳輸協議,HTTP規定了瀏覽器和www(World Wide Web)伺服器之間互相通信的規則,通過Intermet傳送www文檔的數據傳送協議。HTTP是屬於應用層協議。

發送端:應用層--傳輸層--網路層--鏈路層 (逐級協議增加)

接收端:鏈路層--網路層--傳輸層--應用層(逐級解開協議)

HTTP工作流程

HTTP工作流程是客戶端發送一個HTTP請求,說明客戶端想要訪問的資源和請求的動作,服務端收到請求之後,服務端開始處理請求,並根據請求做出相應的動作訪問伺服器資源,最後通過發送HTTP響應把結果返回給客戶端。

持久連接(HTTP keep-alive)

HITP協議的初始版本中,每進行一次HTTP通信就要斷開一次TCP連接。增加通信量的開銷。於是,HTTP/1.1提出了持久連接(HTTPPersistent connections,也稱為HTTP keep-alive 或HTTPconnection reuse)的方法。持久連接的特點是,只要任意一端沒有明確提出斷開連接,則保持TCP連接狀態。

HTTP管線技術

在持久連接之後,出現了管線技術,即不用等待響應亦可直接發送下一個請求。這樣就能夠做到同時並行發送多個請求,而不需要一個接一個地等待響應了。

HTTP請求:

HTTP請求的概念

Request,由客戶端發送給伺服器端

HTTP請求由三部分組成:

狀態行:包括請求方法、資源路RL、協議版本Version;

請求頭:包括一些訪問的域名、用戶代理、Cookie等信息:

請求正文:就是HTTP請求的數據。

HTTP請求類型

HTTP請求類型(method):常用的有GET、POST、PUT、DELETE,即分別對應:查、增、改、刪操作。

下表列出了HTTP/1.0和HTTP/1.1支持的方法。另外,方法名區分大小寫,注意要用大寫字母

方法 說明

GET 獲取資源

POST 傳輸實體主體

PUT 傳輸文件

HEAD 獲得報文首部

DELETE 刪除文件

OPTIONS 詢問支持的方法

TRACE 追蹤路徑

CONNECT 要求用隧道協議連接代理

LINK 建立和資源之間的聯繫

UNLINE 斷開連接關係

註:LINK和UNLINE已經被HTTP/1.1廢棄,不再支持。

HTTP請求類型--GET

GET方法用來請求訪間已被URI識別的資源。指定的資源經伺服器端解析後返迴響應內容。也就是說,如果請求的資源是文本,那就保持原樣返回;如果是像CGI(Common Gateway Interface,通用網關介面)那樣的程序,則返回經過執行後的輸出結果。

HTTP請求類型--POST

POST請求主要是數據的提交,比如新增一條數據。

HTTP請求類型--PUT

PUT方法用來傳輸文件。就像FTP協議的文件上傳一樣,要求在請求報文的主體中包含文件內容,然後保存到請求URI指定的位置。但是,鑒於HTTP/1.1的PUT方法自身不帶驗證機制,任何人都可以上傳文件,存在安全性問題,因此一般的Web網站不使用該方法。若配合Web應用程序的驗證機制,或架構設計採用REST(REpresentational State Transfer,表徵狀態轉移)標準的同類Web網站,就可能會開放使用PUT方法。

HTTP請求類型--DELETE

DELETE方法用來刪除文件,是與PUT相反的方法。DELETE方法按請求URI刪除指定的資源。但是,HTTP/1.1的DELETE方法本身和PUT方法一樣不帶驗證機制,所以一般的Web網站也不使用DELETE方法。當配合Web應用程序的驗證機制,或遵守REST標準時還是有可能會開放使用的。

HTTP響應

HTTP響應(Response)的概念

伺服器收到了客戶端發來的HTTP請求後,根據HTTP請求中的動作要求,服務端做出具體的動作,將結果回應給客戶端,稱為HTTP響應。

HTTP響應由三部分組成

狀態行:包括協議版本Version、狀態碼Status Code、回應短語;

響應頭:包括搭建伺服器的軟體,發送響應的時間,回應數據的格式等信息;

響應正文:

HTTP響應的狀態碼:

HTTP狀態碼負責表示客戶端HTTP請求的返回結果、標記伺服器端的處理是否正常、通知出現的錯誤等工作。

HTTP GET請求報文

HTTP GET請求報文解釋

GET/oscomnerce/index.php HTTP/1.1

指明瞭三個關鍵信息:請求類型為GET,資源URL地址為/oscomnerce/index.php,協議類型和版本為HTTP/1.1。

Accept

告訴伺服器當前瀏覽器能接受和處理的介質類型,如果*/*表示可接受所有類型。

Accept-Language

告訴伺服器當前瀏覽器能接受和處理的語言。上述請求表示瀏覽器接受zh-CN(中國中文)另外的有er-Us(美國英文)。

User-Agent

告訴伺服器當前客戶端的操作系統和瀏覽器內核版本信息。

Accep-Encoding

有兩種常用的HTTP壓縮:deflate和gzip,gzip表示當前客戶端支持gzip格式壓縮,這樣伺服器諾可以將HTML,JavaScript或CSS這種文本型資源壓縮後再傳遞給瀏覽器,瀏覽器接收到後有解壓縮的能力。這樣可以顯著減少資源佔用的帶寬和在網路上傳輸的時間。deflate是一種過時的壓縮技術。

Host

要訪間的伺服器主機名或IP地址。

Connection

Keep-Alive,告訴伺服器在完成本次請求的響應後,保持該TCP連接不釋放,等待本次連接的後續請求。這樣可以減少打開關閉TCP連接的次數,提升處理性能。另外可選的選項是Close,表明直接響應接收完成後直接將其關閉。

Referer

指定發起該請求的源地址。根據這一值伺服器可以跟蹤到來訪者的基本信息。

Cookie

將客戶端的Cookie信息發送給伺服器端。

HTTP POST請求報文

HTTP 響應報文

HTTP響應報文解釋

Transfer-Encoding:chunked

HTTP協議中使用Content-Length這個頭來告知數據的長度。然後,在數據下行的過程中,Content-Length的方式要預先在伺服器中緩存所有數據,然後所有數據再一股腦兒地發給客戶端。如果要一邊產生數據,一邊發給客戶端,WEB伺服器就需要使用「Transfer-Encoding:chunked"這樣的方式來代替Content-Length。Chunked是一種HTTP的編碼方式,chunked編碼的基本方法是將大塊數據分解成多塊小數據每塊都可以自指定長度。

舉例:視頻網站,分段緩存

HTTP協議--Cookie

HTTP是無狀態協議,它不對之前發生過的請求和響應的狀態進行管理。如果用戶登錄到一家購物網站,即使他跳轉到該站的其他頁面後,我們也希望能繼續保持登錄狀態。於是引入了Cookie技術。有了Cookie再用HTTP協議通信,就可以管理狀態了。

什麼是Cookie

Cookie是當你在瀏覽某網站時,由Web伺服器傳輸到用戶計算機硬碟上的一個非常小的文本文件,它可以記錄你的IP地址、用戶ID、密碼、瀏覽過的網頁、停留的時間等信息。

存有Cookie狀態信息以後,客戶端再向伺服器發起請求時,伺服器通過讀取Cookie信息獲取身份信息,然後進行相應的處理。

如何查看Cookie

現在一般IE瀏覽器的Cookie信息可以通過設置的Internet選項的瀏覽歷史記錄的設置選項進行查看

如何刪除Cookie

1.先打開IE的瀏覽器。

2.點擊頁面最上方一行中的「工具」。

3.在拉出的菜單裏用滑鼠點擊「internet」選項。

4.在彈出的對話框裏用滑鼠點擊「刪除Cookie」選項。

5.在又一個彈出的小對話框裏用滑鼠點擊「確定」後,這個對話框就消失了。

6.再繼續點擊留下的原來的對話框下方的「確定」。這樣,就算刪除完Cookie了。

HTTP協議--Session

什麼是Session?

Session是客戶端與伺服器之間的會話。

當訪間網站時,伺服器會標示該訪間者,給它一個Session ID,當他離開的時候(也就是關閉瀏覽器的時候)就刪除這個Session ID。

Session ID以響應的方式傳遞給客戶端,客戶端在後續的請求中將該Session ID值包含在Cookie欄位中回傳給伺服器,伺服器就可以用來對客戶端的身份進行驗證了。

如何查看Session

在IP地址框寫入1JavaScript:alert(document.cookie)就可以查看到Session ID

輸入後刪除數字1

WireShark工具的使用

對抓包的結果進行過濾,常用的過濾方法有:

按協議過濾:

如:HTTP,TCP,UDP。

按IP過濾:

ip.src==192.168.0.104或ip.dst==192.168.0.104,一個是客戶端IP,一個是伺服器IP。

按埠過濾:

如tcp.prot==80

按HTTP請求GET方法過濾

如:http.request.method=="GET"

通過邏輯運算符進行條件組合來過濾

如:ip.src==192.168.0.104 or ip.dst==192.168.0.104

還可以直接定義起始都包含這個IP的過濾方式:

如:ip.addr==192.168.0.104

按主機地址來過濾:

host www.baidu.com

By:談老弟的軟測之路


推薦閱讀:
相關文章