1. 程式人生 > 程式設計 >vue簡易記事本開發詳解

vue簡易記事本開發詳解

ip地址

  IP協議提供的一種統一的地址格式,ip地址是標識網路中唯一的一臺裝置

ip地址的表現形式

  IPV4:以點分隔十進位制資料

  IPV6:以冒號分隔十六進位制資料

檢視電腦的網絡卡資訊

  windows使用:ipconfig

  mac / linux使用:ifconfig、ip addr

本機ip地址

  127.0.0.1本機域名: localhost

IP地址的作用

  通過ip地址能夠在網路中找到對應的網路裝置。

  埠是傳輸資料的通道,好比教室的門,是資料傳輸的必經之路

  每一個埠都會有一個對應的埠號,好比每個教室的門都有一個門牌號,想要找到埠通過埠號即可。

埠號

  就是對埠進行了編號,用來區分和管理不同埠的,通過埠號能找到唯的一個埠。好比門牌號,其實就是一個數字。

  資料通訊的流程:通過ip地址找到對應的裝置,通過埠號找到對應的埠,然後通過埠把資料傳輸給應用程式。

  埠號總共有65536個。

埠和埠號的關係

  埠號可以標識唯一的一個埠。

ip+埠號通訊流程

  1、通過ip地址能夠找到網路中對應的裝置

  2、通過埠號能夠找到對應的埠,通過該埠給對應的程式傳送資料。

  說明:通過埠號就是用來查詢對應執行的應用程式的。

埠號的分類

知名埠(Well-Known Ports)

   知名埠即眾所周知的埠號,範圍從0到1023,這些埠號一般固定分配給一些服務。比如21埠分配給FTP服務,25埠分配給SMTP(簡單郵件傳輸協議)服務,80埠分配給HTTP服務,135埠分配給RPC(遠端過程呼叫)服務等等。

 動態埠(Dynamic Ports)

   動態埠的範圍從1024到65535,一般程式設計師開發應用程式使用的埠號。比如1024埠就是分配給第一個向系統發出申請的程式。在關閉程式程序後,就會釋放所佔用的埠號。

說明:程式執行結束埠號就會被釋放掉

tcp傳輸協議

  tcp是傳輸控制協議,它是面向連線、可靠、基於位元組流的傳輸協議,能夠保證資料是可靠的,不會導致資料錯亂和丟失。

  提示:想要保證資料按照指定規則進行傳輸,必須要選擇某種傳輸協議,比如: tcp、udp

tcp的通訊流程

  1.建立連線
  2.資料通訊
  3.關閉連線

tcp的特點

  面向連線:在資料通訊之間先建立好連線,當資料通訊完畢,則斷開連線

  可靠的

   1.錯誤校驗
   2.應答機制
   3.超時重傳
   4.流量控制和阻塞管理

tcp的使用場景

  要求的是資料必須可靠,比如:下載檔案,瀏覽網頁等都是基於tcp傳輸協議的。

udp傳輸協議

  它是一種不面向連線,不能保證資料可靠性的傳輸協議,但是傳輸速度比tcp要快。

udp的使用場景

  比如:傳送廣播、收音機、視訊傳輸等都是基於udp來完成的。

http協議

  是一個超文字傳輸協議,它是基於tcp協議來進行資料傳輸的,目前http協議可以傳送和接收任意型別的資料,原來主要用於網頁資料的傳輸

http協議作用

  規定了瀏覽器和web伺服器傳輸資料的格式

  劉覽器必須要傳送http請求報文資料

  web伺服器必須要傳送http響應報文資料。

https協議

  https是對http協議進行資料加密的,也就是說http協議是明文傳輸的,https協議是加密傳輸的,能夠保證資料的安全性。

  https進行資料加密是通過SSL(安全套接字層)進行加密的。

http和https的對比

  1.安全性不同

   http是明文傳輸的

   https是基於http進行加密傳輸的,https的安全性更高

  2.埠號不同

   http預設使用埠號:80

   https預設使用埠號:443

  3.https這個協議需要購買CA證書

  4.傳輸速度不同

   http由於在傳輸資料的時候不需要加密,則傳輸速度比https要快。

   https由於在傳輸資料的時候需要加密,則傳輸速度沒有http快,但是資料更加安全。

使用谷歌瀏覽器的開發者工具檢視http協議的通訊過程

  1、開啟谷歌瀏覽器

  2、在空白地方右擊選擇檢查

  3、選擇Network頁籤

  4、輸入想要訪問網址

  network裡面的每一條記錄都是請求+響應的一次過程

主要的頁籤:

  request headers:請求頭資訊

  response headers:響應頭資訊

  response:響應體資訊, web伺服器給瀏覽器的資料。

開發者工具的標籤選項說明:

  元素(Elements) :用於檢視或修改HTML標籤;

  網路(Network) :檢視http協議的通訊過程

http請求報文

  get請求報文

  post請求報文

get請求報文

  1、請求行

   get請求方法 請求的資源路徑 協議版本,比如: GET /HTTP/1.1

  2、請求頭

   host:請求主機地址

   accept:告訴web伺服器客戶端接受資料的型別

   user-agent:告訴伺服器客戶端的名稱

   cookie: pgv_pvi=1246921728; 登入使用者的身份標識

  3、空行

get原始報文

-- 請求行
GET / HTTP/1.1\r\n
-- 請求頭
Host: www.baidu.com\r\n
Connection: keep-alive\r\n
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36\r\n
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9\r\n
Cookie: BIDUPSID=8004359AF4B9299670C277F85B3786E3; \r\n
-- 自定義請求頭
token:xxx\r\n
-- 空行
\r\n (請求頭資訊後面還有一個單獨的‘\r\n’不能省略)

  如果不使用瀏覽器傳送請求資料,則必須把全部請求報文資料傳送給後臺程式,比如:使用Python程式傳送請求資料,如果使用瀏覽器的話則不需要自己傳送請求報文資料,瀏覽器已經幫你封裝完畢了。

  提示:每項資料之間使用\r\n進行分割,http協議中規定的。

post請求

1、請求行

  post請求方法 請求資源路徑 協議版本,比如: post N2/api/?login HTTP/1.1

2、請求頭

  host

  user-agent

  content-type:表示請求引數的型別(form表單, json資料),主要是是請求體的引數

3、空行

4、請求體

post原始報文

-- 請求行
POST /v2/api/?login HTTP/1.1\r\n
-- 請求頭
Host: passport.baidu.com\r\n
Connection: keep-alive\r\n
Origin: https://www.baidu.com\r\n
Content-Type: application/x-www-form-urlencoded\r\n
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36\r\n
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9\r\n
Cookie: BIDUPSID=8004359AF4B9299670C277F85B3786E3; \r\n
-- 空行
\r\n (請求頭資訊後面還有一個單獨的‘\r\n’不能省略)
-- 請求體
username=lyang&pass=123456\r\n

get和post報文格式的對比

  get請求:請求行、請求頭、空行
  post請求:請求行、請求頭、空行、請求體

http響應報文組成

1、響應行

  http協議版本 狀態碼 狀態描述,比如: HTTP/1.1 200 OK

2、響應頭

  Server:伺服器名字
  Data:伺服器處理時間
  Content-Type:伺服器告訴客戶端內容的型別,比如:Content-Type: text/html;charset=utf-8

3、空行

4、響應體

  客戶端使用的資料在響應體裡面,比如:返回的html資料或者json資料

http響應報文

-- 響應行/狀態行
HTTP/1.1 200 OK # HTTP協議版本 狀態碼 狀態描述
-- 響應頭
Connection: keep-alive # 和客戶端保持長連線
Content-Type: text/html;charset=utf-8	# 內容型別
Date: Sun, 27 Jun 2021 10:52:40 GMT # 伺服器的響應時間
Transfer-Encoding: chunked # 傳送給客戶端內容不確定內容長度,傳送結束的標記是\r\n,Content-Length表示服務端確定傳送給客戶端的內容大小,但二者只能用其一
Server: BWS # 伺服器名稱
-- 空行
\r\n
-- 響應體
<!DOCTYPE html><html lang=“en”> … </html>	# 響應給客戶端的資料

http常見的狀態碼

  • 200 表示請求成功
  • 307 表示重定向
  • 400 表示請求引數有問題
  • 404 表示請求資源伺服器不存在
  • 500 表示伺服器內部程式碼問題

http狀態碼的分類

  • 1xx: 表示請求已經收到,可以繼續再發送請求
  • 2xx: 表示操作成功
  • 3xx: 表示重定向
  • 4xx: 表示客戶端錯誤
  • 5xx: 表示服務端程式錯誤

響應報文中的Content-Type

Content-Type 表示告訴客戶端內容型別

  • 表現形式
    • text/html 表示伺服器給客戶端是網頁或者文字資料, 完整格式: Content-Type: text/html
    • application/json 表示伺服器給客戶端是json資料,完整格式: Content-Type: application/json

請求報文中的Content-Type

在post請求報文中,會有Content-Type,Content-Type 表示告訴服務端內容型別

  • 表現形式
    • application/x-www-form-urlencoded 表示以表單形式提交資料給web伺服器端, 具體格式:Content-Type: application/x-www-form-urlencoded
    • application/json 表示以json格式的資料提交給web伺服器端, 具體格式: Content-Type: application/json

Content-Type 最常見的資料格式

web伺服器給客戶端資料的時候使用的Content-Type

  • text/html 一般伺服器響應給客戶端網頁資料的時候會使用該格式
  • image/jpeg 一般伺服器響應給客戶端是jpeg格式圖片的時候會使用該格式
  • image/png 一般伺服器響應給客戶端是png格式圖片的時候會使用該格式
  • application/json 一般伺服器響應給客戶端是json資料的時候會使用該格式

客戶端web伺服器資料的時候使用的Content-Type

  • application/json 表示客戶端以json形式提交資料給web伺服器
  • application/x-www-form-urlencoded : 表示客戶端以form表單形式提交資料給web伺服器
  • multipart/form-data 表示客戶端上傳檔案資料給web伺服器使用該格式

http的請求方法

  1. get 獲取伺服器資料
  2. post 向伺服器提交資料
  3. head 獲取響應頭資訊
  4. put 修改資料
  5. delete 刪除資料

get請求方法

  1. get請求表示獲取伺服器的資料,本質是 “得” 資料

  2. 請求引數的表現形式

    1. http://www.baidu.com?引數名1=值1&引數名2=值2, 比如: http://www.baidu.com?username=zhangsan&password=zhang

      1. 提示: url中不能出現中文或者空格,如果有中文或者空格需要進行url的編碼
      2. 提示: get引數需要放到請求地址的後面,使用 ? 進行追加, 多個引數之間使用 & 拼接

post請求方法

  1. post方法表示給伺服器提交資料的,本質是 “給” 資料
  2. 請求引數的表現形式
    1. 引數都會以請求體的方式進行提交,在url地址裡面看不到提交的引數
      1. 如果請求體裡面有多個引數,以表單形式提交的話,多個引數使用 & 拼接, 比如: username=hello&pw=abc
      2. 如果請求體裡面有多個引數,以json形式提交的話,多個引數使用 ,分割,比如: {"username":"hello","pw":"abc"}
    2. 特殊說明: 請求引數的型別需要根據介面文件指定
      1. 比如:如果後臺程式需要的是json資料格式,那麼我們需要指定請求頭裡面Content-Type: application/json
      2. 提示:如果在請求頭裡面沒有指定Content-Type,預設是以表單形式提交,格式:Content-Type: application/x-www-form-urlencoded

get和post請求的區別

  1. get本質是從伺服器獲取資料
  2. post本質是給伺服器提交資料
  3. get沒有請求體
  4. post有請求體
  5. get請求的引數都會暴露在url中,相對來說不安全
  6. post請求的引數都會在請求體裡面,相對來說更安全
  7. get請求預設會對頁面資料進行快取
  8. post請求預設不會對頁面資料進行快取
  9. get請求回退無害,不需要再次提交
  10. post請求回退會重新發起請求,需要再次提交資料
  11. get請求有長度限制,但是http協議中沒有要求長度限制,但是get請求一般都受瀏覽器本身的限制。
  12. post請求沒有長度限制。
  13. get請求的執行速度比post請求要快。

介面介紹

  介面就是客戶端和服務端進行資料互動的通道,客戶端通過介面可以把資料提交給服務端,服務端把處理好的資料通過介面發給客戶端。通俗理解介面就是一個url,比如: http://127.0.0.1:8080/product

介面測試介紹

  介面測試不關注介面功能,關注的是url介面是否能夠滿足指定功能,比如: http://127.0.0.1:8080/product 這個介面是一個新增商品的介面,則測試該介面是否能夠完成新增商品的操作。

介面測試的原理

  模擬客戶端向web伺服器端傳送http請求報文資料以及獲取http響應報文,並驗證響應報文的資料和預期結果是否一致。

介面測試的測試點(關注點):

  • 關注url的地址和請求方法是否正確
  • 驗證請求回來的資料和預期結果是否一致
  • 隱私引數是否能夠保證安全,比如:密碼不能在url地址中出現,密碼是否進行加密
  • 介面是否能夠支援n多個使用者同時訪問,並能正常提供響應資料的能力。

RESTful風格

  只是介面地址的一種表現形式,RESTful風格介面設計更加簡潔。

  提示:不管是傳統介面還是RESTful風格介面,對應我們測試而言都是一樣的,正常根據介面文件進行測試即可。

json的介紹

  json是JavaScript物件的字串,它其實就是一個資料格式,目前主要使用web前端和後臺程式之間的資料通訊上。

json的格式

  • 物件格式 表示一個數據,比如一個學生資訊,一個老師資訊。

    • 物件格式: 使用 {}, 比如: {"name":"李四","age":20}
  • 陣列格式 表示一個集合,這個集合裡面可以包含多個數據。

    • 陣列格式: 使用 [] , 比如: [{"name":"張三","age":20},{"name":"李四","age":30}]

    提示:json資料中的引號必須使用雙引號。

json資料的使用場景

  json資料主要使用在前端程式和後臺程式的資料互動上。

  例如: 前端程式一般需要把資料準備成json格式傳送給後臺程式,後臺程式接收到資料後進行相關的處理,再把處理好的資料以json格式方式返回給前端程式。

  提示:前臺和後臺json資料都是需要包裝成http協議的資料進行傳輸, 請求的json資料會放到請求體裡面,響應的json資料會放到響應體裡面。

介面測試流程

  1. 需求分析
  2. 介面文件分析
    1. 請求資料

        請求的url是否正確
        請求的方法是否正確
        請求的引數是否正確

    2. 響應資料

        響應的內容是否和預期結果一致
        響應頭資訊是否明確
        響應的狀態碼是否正確
        響應的引數是否有說明
          響應體的引數要有說明
          響應頭的引數也要有說明

  3. 設計和編寫測試用例
  4. 執行用例
  5. 跟蹤和管理缺陷(禪道)
  6. 測試完成以後,需要編寫測試報告