Python接口自動化-接口基礎(一)



一、接口的定義

 

1.接口是前后端溝通的橋梁,是數據傳輸通道,包括外部接口、內部接口,內部接口又包括:上層服務與下層

服務接口、同級接口;

2.接口泛指實體把自己提供給外界的一種抽象化物(可以為另一實體),用以由內部操作分離出外部溝通方法,

使其能被內部修改而不影響外界其他實體與其交互的方式;

 


二、接口的分類

 

1.按用途:

  • 電腦等信息機器硬件組件間的接口叫硬件接口:2 個不同的事物連接的橋梁,不同的事物就可以進行數據通信;

  • 電腦等信息機器軟件組件間的接口叫軟件接口:如用戶界面 UI , user interface是一種軟件接口 ;

 

2.按結構:

  • 圖形用戶接口(Graphical User Interface),是人與程序的接口;

  • 應用程序編程接口( Application  Programming Interface)是指外部系統與系統之間以及內部各子系統之間的交互點;

 


三、常見的接口類型

 

1.HTTP接口:基於超文本傳輸協議(HyperText Transfer Protocol  HTTP)開發的接口,是應用最廣泛的網絡

協議之一,但並不排除沒有使用其他協議。基於瀏覽器/服務器(Brower/Server)的軟件系統大多數為HTTP接口;

2.Web Service接口:系統對外的接口,根據提供的方法引用提供的接口,從而獲取數據;

3.RESTful接口:簡稱REST,描述了一個架構式的網絡系統;

 


四、OSI七層模型

 

1.OSI的來源

OSI(Open System Interconnect),即開放式系統互聯。一般叫OSI參考模型,是ISO(國際標准化組織)組織在

1985年研究的網絡互連模型。其含義就是推薦所有公司使用這個規范來控制網絡。這樣所有公司都有相同的規范,就能互聯了。

 

2.OSI七層模型的划分

OSI定義了網絡互連的七層框架(物理層、數據鏈路層、網絡層、傳輸層、會話層、表示層、應用層),即ISO開放互連系統參考模型。如下圖:

3.七層模型的作用

  • 應用層

OSI參考模型中最靠近用戶的一層,是為計算機用戶提供應用接口,也為用戶直接提供各種網絡服務。我們常見應

用層的網絡服務協議有:HTTP,HTTPS,FTP,POP3、SMTP等。

 

公司A的老板就是我們所述的用戶,他要發送的商業報價單,就是應用層提供的一種網絡服務,當然,老板也可以

選擇其他服務,比如說,發一份商業合同,發一份詢價單,等等。

  • 表示層

表示層提供各種用於應用層數據的編碼和轉換功能,確保一個系統的應用層發送的數據能被另一個系統的應用層

識別。如果必要,該層可提供一種標准表示形式,用於將計算機內部的多種數據格式轉換成通信中采用的標准

表示形式。數據壓縮和加密也是表示層可提供的轉換功能之一。

 

A和公司B是不同國家的公司,他們之間的商定統一用英語作為交流的語言,所以此時表示層(公司的文秘),

就是將應用層的傳遞信息轉翻譯成英語。同時為了防止別的公司看到,公司A的人也會對這份報價單做一些

加密的處理。這就是表示的作用,將應用層的數據轉換翻譯等。

 

 

  • 會話層

會話層就是負責建立、管理和終止表示層實體之間的通信會話。該層的通信由不同設備中的應用程序之

間的服務請求和響應組成。

 

會話層的同事拿到表示層的同事轉換后資料,(會話層的同事類似公司的外聯部),會話層的同事那里可能

會掌握本公司與其他好多公司的聯系方式,這里公司就是實際傳遞過程中的實體。他們要管理本公司與外界好多

公司的聯系會話。當接收到表示層的數據后,會話層將會建立並記錄本次會話,他首先要找到公司B的地址信息,

然后將整份資料放進信封,並寫上地址和聯系方式。准備將資料寄出。等到確定公司B接收到此份報價單后,此次

會話就算結束了,外聯部的同事就會終止此次會話。

 

  • 傳輸層

傳輸層建立了主機端到端的鏈接,傳輸層的作用是為上層協議提供端到端的可靠和透明的數據傳輸服務,包括

處理差錯控制和流量控制等問題。該層向高層屏蔽了下層數據通信的細節,使高層用戶看到的只是在兩個傳輸

實體間的一條主機到主機的、可由用戶控制和設定的、可靠的數據通路。我們通常說的,TCP UDP就是在這

一層。端口號既是這里的“端”。

 

傳輸層就相當於公司中的負責快遞郵件收發的人,公司自己的投遞員,他們負責將上一層的要寄出的資料

投遞到快遞公司或郵局。

 

 

  • 網絡層

本層通過IP尋址來建立兩個節點之間的連接,為源端的運輸層送來的分組,選擇合適的路由和交換節點,

正確無誤地按照地址傳送給目的端的運輸層。就是通常說的IP層。這一層就是我們經常說的IP協議層。

IP協議是Internet的基礎。

 

網絡層就相當於快遞公司龐大的快遞網絡,全國不同的集散中心,比如說,從深圳發往北京的順豐快遞

(陸運為例啊,空運好像直接就飛到北京了),首先要到順豐的深圳集散中心,從深圳集散中心再送到

武漢集散中心,從武漢集散中心再寄到北京順義集散中心。這個每個集散中心,就相當於網絡中的一個IP節點。

 

 

  • 數據鏈路層

將比特組合成字節,再將字節組合成幀,使用鏈路層地址 (以太網使用MAC地址)來訪問介質,並進行差錯檢測。

數據鏈路層又分為2個子層:邏輯鏈路控制子層(LLC)和媒體訪問控制子層(MAC)。MAC子層處理

CSMA/CD算法、數據出錯校驗、成幀等;LLC子層定義了一些字段使上次協議能共享數據鏈路層。

在實際使用中,LLC子層並非必需的。

 

  • 物理層

實際最終信號的傳輸是通過物理層實現的。通過物理介質傳輸比特流。規定了電平、速度和電纜針腳。

常用設備有(各種物理設備)集線器、中繼器、調制解調器、網線、雙絞線、同軸電纜。這些都是物理層的傳輸介質。

 

快遞寄送過程中的交通工具,就相當於我們的物理層,例如汽車,火車,飛機,船。

 

 

4.七層模型通信特點:對等通信

對等通信,為了使數據分組從源傳送到目的地,源端OSI模型的每一層都必須與目的端的對等層進行通信,

這種通信方式稱為對等層通信。在每一層通信過程中,使用本層自己協議進行通信。

 

 


五、HTTP概述

 

1.什么是HTTP?

超文本傳輸協議(HTTP)是用於傳輸諸如HTML的超媒體文檔的應用層協議,是在 Web 上進行數據交換的基礎,

是一種 client-server 協議。

  • HTTP協議構建於 TCP/IP 協議之上,是一個客戶端和服務器端請求和應答的標准(TCP)。客戶端是終端用戶服務器端是網站。通過使用Web瀏覽器、網絡爬蟲或者其它的工具,客戶端發起一個到服務器上指定端口(默認端口為80)的HTTP請求。

  • HTTP是屬於應用層的協議,它被設計用於Web瀏覽器和Web服務器之間的通信,也可以用於其他目的。

  • HTTP遵循經典的客戶端-服務端模型,客戶端打開一個連接以發出請求,然后等待它收到服務器端響應。

  • HTTP是無狀態協議,意味着服務器不會在兩個請求之間保留任何數據(狀態)。雖然通常基於TCP / IP層,但可以在任何可靠的傳輸層上使用; 也就是說,一個不會靜默丟失消息的協議,如UDP。請求通常是由像瀏覽器這樣的接受方發起的。

  • 一個完整的Web文檔通常是由不同的子文檔拼接而成的,像是文本、布局描述、圖片、視頻、腳本等等。

  • 通俗來講,就是計算機通過網絡進行通信的規則,是一個基於請求與響應,無狀態的,應用層的協議,常基於TCP/IP協議傳輸數據。目前任何終端(手機,筆記本電腦)之間進行任何一種通信都必須按照Http協議進行,否則無法連接。

 

2.HTTP請求特點?

1.支持客戶端/服務器模式:客戶端發送請求,服務器端響應數據。客戶端向服務器請求服務時,只需要傳送請求的方法和路徑即可。常用的請求方法有get(查)、post(增),除此之外還有put(改)、delete(刪)等,每種方法規定的客戶端與服務器聯系的方式不同,日常工作中見到的最多的是get和post兩種。

2.簡單靈活:HTTP簡單,服務器的程序規模小,通信速度快;HTTP使用TCP作為它的支撐運輸協議,HTTP客戶機發起一個與服務器的TCP連接,一旦連接建立,瀏覽器(客戶機)和服務器進程就可以通過套接字接口訪問TCP,HTTP運行傳輸任意類型的數據對象。

3.無狀態:協議對於事務處理沒有記憶能力,客戶端第一次與服務器建立連接發送請求時需要進行一系列的安全認證匹配等,因此增加頁面等待時間,當客戶端向服務器端發送請求,服務器端響應完畢后,兩者斷開連接,也不保存連接狀態,(一刀兩斷,恩斷義絕,從此路人)下一次客戶端向同樣的服務器發送請求時,由於他們之前已經遺忘了彼此,所以需要重新建立連接。

4.無連接:限制每次連接,使其只處理一個請求。服務器處理完客戶端的請求並收到客戶端的應答后,即斷開連接,這種方式可以節省傳輸時間。

 

3.HTTP與HTTPS的區別?

HTTP協議傳輸的數據都是未加密的,也就是明文的,因此使用HTTP協議傳輸隱私信息非常不安全,為了保證這些隱私數據能加密傳輸,於是網景公司設計了SSL(SecureSocketsLayer)協議用於對HTTP協議傳輸的數據進行加密,從而就誕生了HTTPS。簡單來說,HTTPS協議是由SSL+HTTP協議構建的可進行加密傳輸、身份認證的網絡協議,要比http協議安全。

HTTP與HTTPS都是應用層協議,且本質上沒有什么不同。他們的區別相對來說就是HTTPS是HTTP的安全版,HTTP信息是明文傳輸,而HTTPS是具有安全性的SSL加密傳輸,安全性要高於HTTP協議。且兩者使用的端口也不一樣,HTTP默認使用80端口,而HTTPS使用443端口。

HTTPS和HTTP的區別主要如下:總的來說:HTTPS=SSL+HTTP

1、https協議需要到ca申請證書,一般免費證書較少,因而需要一定費用。

2、http是超文本傳輸協議,信息是明文傳輸,https則是具有安全性的ssl加密傳輸協議。

3、http和https使用的是完全不同的連接方式,用的端口也不一樣,前者是80,后者是443。

(這個只是默認端口不一樣,實際上端口是可以改的)

4、http的連接很簡單,是無狀態的;HTTPS協議是由SSL+HTTP協議構建的可進行加密傳輸、身份認證的網絡協議,比http協議安全。

 

4.Cookie和Session的區別?

 

Cookie 是訪問某些網站以后在本地存儲的一些網站相關的信息,下次再訪問的時候減少一些步驟。另外一個更准確的說法是:Cookie 是服務器在本地機器上存儲的小段文本並隨每一個請求發送至同一個服務器,是一種在客戶端保持狀態的方案。由於 HTTP 協議是無狀態的協議,所以服務端需要記錄用戶的狀態時,就需要用某種機制來識具體的用戶,這個機制就是 Session。

Cookie和Session是解決http協議的無狀態性,區別如下:

1.存儲位置不同:Cookie是將用戶數據通過加密的方式保存在客戶端,大多數情況Cookie存儲在瀏覽器;Session是用於控制客戶端和服務端的連接,Session存儲在服務器;

2.存儲容量不同:單個Cookie保存的數據不得超過4kb,一個站點最多20個Cookie,Session一般情況下沒有上限,不過建議不要存放太多東西,否則影響性能;

3.存取方式不同:Cookie只能用ASCII字符串,通過編碼方式獲取Unicode字符或者二進制數據,不好存儲復雜的信息,而Session能存儲任何類型的數據;

4.隱私策略/安全性不同:Cookie放在客戶端,可以進行Cookie欺騙,所以不安全,Session放在服務端,更加安全;

5.有效期不同:Cookie可以設置屬性達到長期有效,Session依賴於JSESSIONID的Cookie,Cookie JSESSIONID的過期時間默認為-1,只需要關閉窗口Session就會失效,就算不依賴Cookie,用UrL重寫也不能完成,如果Session超時時間過長,容易導致內存溢出;

6.服務器壓力不同:Cookie保存在本地,不存在服務端壓力,Session保存在服務端,每個用戶產生一個Session,當訪問增多,會比較占用服務器的性能,如果主要考慮到減輕服務器性能方面,應當使用Cookie;

 

7.瀏覽器支持不同:如果瀏覽器禁用Cookie,那么Cookie直接失效,Session比較好點,可以用URL重寫;

 

8.cookie和session應用的場景:

cookie:用戶的登錄狀態,記錄用戶的習慣,購物車;

session:登錄驗證;

 

更多系列文章,可以關注微信公眾號:ITester軟件測試小棧



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM