接口測試是軟件測試中的一項重要工作,它涉及到系統與系統之間的交互點。接口可以是外部接口,也可以是內部接口,包括上層服務與下層服務接口以及同級接口。在接口測試中,我們需要確保接口能夠按照預期的方式進行通信和交互,并且能夠正確處理輸入和輸出數據。
1. HTTPS 的工作原理
我們都知道HTTPS能夠加密信息,以免敏感信息被第三方獲取,所以很多銀行網站或電子郵箱等等安全級別較高的服務都會采用HTTPS協議。
客戶端在使用HTTPS方式與Web服務器通信時有以下幾個步驟:
客戶使用https的URL訪問Web服務器,要求與Web服務器建立SSL連接。
Web服務器收到客戶端請求后,會將網站的證書信息(證書中包含公鑰)傳送一份給客戶端。
客戶端的瀏覽器與Web服務器開始協商SSL連接的安全等級,也就是信息加密的等級。
客戶端的瀏覽器根據雙方同意的安全等級建立會話密鑰,然后利用網站的公鑰將會話密鑰加密并傳送給網站。
Web服務器利用自己的私鑰解密出會話密鑰。
Web服務器利用會話密鑰加密與客戶端之間的通信。
2. HTTPS的優點
盡管HTTPS并非絕對安全,掌握根證書的機構、掌握加密算法的組織同樣可以進行中間人形式的攻擊,但HTTPS仍是現行架構下最安全的解決方案,主要有以下幾個好處:
使用HTTPS協議可認證用戶和服務器,確保數據發送到正確的客戶機和服務器。
HTTPS協議是由SSL+HTTP協議構建的可進行加密傳輸、身份認證的網絡協議,要比HTTP協議安全,可防止數據在傳輸過程中被竊取、改變,確保數據的完整性。
HTTPS是現行架構下最安全的解決方案,雖然不是絕對安全,但它大幅增加了中間人攻擊的成本。
谷歌曾在2014年8月份調整搜索引擎算法,并稱“比起同等HTTP網站,采用HTTPS加密的網站在搜索結果中的排名將會更高”。
3. HTTPS的缺點
雖然說HTTPS有很大的優勢,但相對來說,它還是存在一些不足之處:
HTTPS協議握手階段比較費時,會使頁面的加載時間延長近50%,增加10%到20%的耗電。
HTTPS連接緩存不如HTTP高效,會增加數據開銷和功耗,甚至已有的安全措施也會因此而受到影響。
SSL證書需要錢,功能越強大的證書費用越高,個人網站、小網站一般不會用。
SSL證書通常需要綁定IP,不能在同一IP上綁定多個域名,IPv4資源不可能支撐這個消耗。HTTPS協議的加密范圍也比較有限,在黑客攻擊、拒絕服務攻擊、服務器劫持等方面幾乎起不到什么作用。最關鍵的是,SSL證書的信用鏈體系并不安全,特別是在某些國家可以控制CA根證書的情況下,中間人攻擊一樣可行。
4. HTTPS和HTTP的區別
HTTPS協議需要到CA申請證書,一般免費證書較少,因而需要一定費用。
HTTP是超文本傳輸協議,信息是明文傳輸;HTTPS則是具有安全性的SSL加密傳輸協議。
HTTP和HTTPS使用的是完全不同的連接方式,用的端口也不一樣,前者是80,后者是443。
HTTP的連接很簡單,是無狀態的;HTTPS協議是由SSL+HTTP協議構建的可進行加密傳輸、身份認證的網絡協議,比HTTP協議安全。
HTTP的URL參數在瀏覽器歷史記錄中保留,而HTTPS的參數不會被保留。
HTTP的參數傳遞有長度限制,而HTTPS沒有。
HTTP比HTTPS更不安全,因為參數直接暴露在URL上,所以不能用來傳遞敏感信息。
GET請求的參數通過URL傳遞,而POST請求的參數放在請求體中。
GET請求產生一個TCP數據包,而POST請求產生兩個TCP數據包。
5. Session與Cookie的區別
Session和Cookie是Web開發中常用的狀態管理機制,它們在保存用戶信息和維持用戶會話方面有所不同。
保存位置:Session數據保存在服務器端,而Cookie數據保存在客戶端瀏覽器。
保存方式:Session默認被存在服務器的一個文件里,可以手動設置存儲位置;Cookie默認保存在客戶端內存中,如果設置了過期時間就保存在硬盤中。
依賴關系:Session依賴Cookie來識別sessionid,如果瀏覽器禁用了Cookie,Session也會失效,此時可以通過URL傳遞sessionid。
安全
性:因為Session數據保存在服務器端,所以Session的安全性比Cookie高。
尺寸大小:Session基本上沒有大小限制,而Cookie保存的內容比較小,具體由瀏覽器決定。
服務器性能:Session對服務器的壓力會更大一些,而Cookie放在客戶端,所以對服務器基本沒影響。
6. TCP和UDP的區別
TCP(Transmission Control Protocol)和UDP(User Datagram Protocol)是互聯網協議套件中的兩個主要傳輸層協議,它們有以下區別:
TCP是面向連接的協議,而UDP是無連接的協議。TCP在通信之前需要建立連接,而UDP不需要。
TCP提供可靠的服務,確保數據傳輸的可靠性和順序,而UDP不保證可靠性,盡最大努力交付數據。
TCP面向字節流,將數據看作連續的字節流,而UDP是面向報文的,將數據看作獨立的報文。
TCP有擁塞控制機制,會根據網絡情況調整發送數據的速率,而UDP沒有擁塞控制,發送數據不受限制。
TCP是一對一的通信,即一個發送方和一個接收方進行通信,而UDP支持一對一、一對多、多對一和多對多的通信。
TCP的首部開銷較大,占用20個字節,而UDP的首部開銷較小,只有8個字節。
7. 什么是TCP/IP?
TCP/IP是互聯網協議套件,也被稱為互聯網通信協議族,是構建和組織互聯網的基礎通信架構。
TCP/IP協議族下的兩個核心協議是TCP(傳輸控制協議)和IP(網際協議)。它們是在網絡通信協議分層結構中的關鍵協議,被稱為TCP/IP協議棧。
TCP/IP協議提供了點對點的鏈接機制,定義了數據的封裝、定址、傳輸、路由以及在目的地如何接收等標準化過程。
協議棧按照不同功能將協議分層,每個層次實現不同的通信協議。TCP/IP協議族的各種協議根據其功能不同被歸類到四個層次結構中,通常被視為是簡化的七層OSI模型。
8. 常見的接口類型及API文檔模板
常見的接口類型包括:
HTTP接口:基于HTTP協議的接口,是應用最廣泛的網絡協議之一,大多數基于瀏覽器/服務器架構的軟件系統使用HTTP接口。
Web Service接口:系統對外的接口,根據提供的方法引用提供的接口,從而獲取數據。
RESTful接口:描述了一種架構式的網絡系統,基于標準HTTP方法和URL進行通信,支持系統間資源的交互。
常見的API文檔模板包括:
Swagger
FlatDoc
RestDoc
API Blueprint
Slate
Miredot
9. Cookie的作用及測試點
Cookie是一種用于在客戶端存儲數據的機制,它具有簡便性、可擴展性和可用性,可用于解決HTTP協議無狀態的問題。Cookie的作用主要包括:
會話管理:通過存儲會話標識,實現用戶狀態的管理和跟蹤。
用戶個性化設置:記錄用戶的偏好和設置,提供個性化的用戶體驗。
購物車功能:在電商網站中存儲用戶選擇的商品信息,方便用戶進行購物。
記住登錄狀態:在用戶登錄后,存儲登錄憑證,使用戶在一段時間內免登錄訪問。
在進行Cookie測試時,可以關注以下測試點:
禁止使用Cookie:測試在禁用Cookie的情況下系統是否能正常工作。
Cookie存儲路徑:檢查Cookie存放路徑是否與設置一致。
Cookie過期檢查:驗證存放的Cookie在過期后是否被自動刪除。
檢查瀏覽器中Cookie選項:測試不同瀏覽器的Cookie選項,驗證是否可以正常接受和存儲Cookie。
瀏覽器刪除Cookie:通過瀏覽器的設置,測試是否能正確刪除Cookie文件。
Cookie加密:驗證在提交敏感信息時,數據是否能夠正確加密。
Cookie保存信息:驗證Cookie是否能正常保存和讀取所需的信息。
篡改Cookie:測試修改Cookie內容后,系統是否能正確識別和處理。
Cookie的兼容性:在不同類型或不同版本的瀏覽器中,測試Cookie文件的兼容性。
刷新操作對Cookie的影響:測試刷新操作后是否重新生成或修改Cookie文件。
檢查Cookie內容存儲是否完整正確:對加密的Cookie內容進行解密,檢查是否按設計要求存儲了相關的所有信息。
檢查Cookie的更新和添加:多次進行相同操作或設置,檢查是否更新或添加了新的Cookie文件。
統計功能驗證:如果使用Cookie來統計次數或記錄狀態,驗證統計功能是否正常工作。
10. 在接口測試中,為什么需要對HTTPS的工作原理有所了解?HTTPS在接口測試中有哪些重要作用和優勢?
數據安全性:HTTPS使用SSL/TLS協議對通信進行加密,確保數據在傳輸過程中不被第三方獲取、篡改或竊聽。它通過使用對稱加密、非對稱加密和數字證書等技術,提供了更高級別的數據保護,保證了敏感信息的機密性和完整性。
身份驗證:HTTPS可以對服務器進行身份驗證,確保與預期的服務器建立連接。在接口測試中,這意味著可以驗證接口的終端點是否為預期的合法服務器,避免了中間人攻擊和偽造服務器的風險。
防止數據篡改:HTTPS使用消息摘要算法(如SHA)和數字簽名,可以確保數據在傳輸過程中不被篡改。接口測試中,這保證了請求和響應數據的完整性,確保數據的一致性和準確性。
合規性和安全標準:使用HTTPS協議符合許多行業和安全標準的要求,如PCI DSS(支付卡行業數據安全標準)。在接口測試中,如果涉及到處理敏感數據或符合特定標準的場景,使用HTTPS可以確保符合合規性要求,并提供額外的安全層級。
排名提升和用戶信任:谷歌等搜索引擎更傾向于將使用HTTPS加密的網站排名較高,因為它們提供更安全的用戶體驗。在接口測試中,如果接口涉及到公共網站或需要提升用戶信任的場景,使用HTTPS可以提升網站的搜索排名并增加用戶的信任度。
抗攻擊能力增強:相比HTTP協議,HTTPS大大增加了中間人攻擊的成本。HTTPS提供了更強的防護能力,可以抵御黑客攻擊、拒絕服務攻擊和服務器劫持等威脅。在接口測試中,這意味著可以更好地保護接口免受安全漏洞和攻擊的影響。
兼容性和標準化:HTTPS是廣泛使用的標準協議,與各種系統和平臺兼容性良好。在接口測試中,使用HTTPS可以確保接口與其他系統的兼容性,并保證與行業標準的一致性。
最后:?為了回饋鐵桿粉絲們,我給大家整理了完整的軟件測試視頻學習教程,朋友們 如果需要可以自行免費領取?【保證100%免費】
軟件測試面試文檔
我們學習必然是為了找到高薪的工作,下面這些面試題是來自阿里、騰訊、字節等一線互聯網大廠最新的面試資料,并且有字節大佬給出了權威的解答,刷完這一套面試資料相信大家都能找到滿意的工作。
【軟件測試面試突擊班】2024吃透軟件測試面試最全八股文攻略教程,一周學完讓你面試通過率提高90%!(自動化測試)
?