主頁 > 企業開發 > Node.js基礎入門第二天

Node.js基礎入門第二天

2022-03-16 07:27:25 企業開發

經過第一天的學習,對Node.js有了一個初步的認識,今天繼續學習Node.js,加以整理并分享,如有不足之處,還請指正,

require函式

作用:在當前模塊中加載另外一個模塊

語法:require("模塊名稱")

模塊分類

在Node.js中,模塊可以分為三大類,如下所示:

  • 自定義模塊:在專案中撰寫的具有特定功能的模塊就是自定義模塊,
    1. 當子模塊沒有暴露資料時,回傳空物件,而不是undefined,
    2. 參考自定義模塊,必須在路徑前加./【如:require("./01.js")】,因為Node.js默認不是當前目錄,而是node_modules,
  • 第三方模塊:第三方程式員或公司開發的模塊,需要先安裝再使用,可以通過NPM包管理器進行安裝,
  • 系統模塊:Node.js自帶的系統模塊,不需要安裝下載,直接參考即可【如:fs,http,url等】,

第三方模塊

如果要使用第三方模塊,必須要先進行安裝,以jQuery為例,如下所示:

1. 安裝第三方模塊

安裝之前,如下所示:

通過安裝命令【npm install jquery】進行安裝,如下所示:

安裝成功后,會自動在程式目錄創建node_modules檔案夾,如下所示:

 

 2. 引入第三方模塊

當安裝成功后,在程式中直接參考即可,如下所示:

1 var jquery = require("jquery");
2 console.log(jquery.toString());

3. 示例測驗

在命令列進行測驗參考第三方模塊,如下所示:

注意:示例之所以報錯,是因為jQuery是瀏覽器端的模塊庫,所以不支持服務器端呼叫,本次只是作為呼叫示例演示,

系統模塊

系統模塊是Node.js自帶的具有特定功能的模塊,不需要安裝,直接使用即可,以檔案模塊為例,如下所示:

首先創建一個測驗檔案test.txt,檔案內容如下:

 然后通過Node.js自帶的fs模塊進行呼叫,如下所示:

1 var fs =require("fs");
2 fs.readFile("test.txt",function(err,data){
3     console.log(data.toString());
4 });

測驗示例如下所示:

require注意事項

  1. 當引入的模塊存在錯誤時,會報錯;
  2. 當引入的模塊路徑不存在時,也會報錯;
  3. 當模塊被重復參考是,只會加載一次【因為第一次加載時,會存入快取區,第二次加載時,會先判斷快取區是否存在,如果存在,則直接賦值】,

關于require加載模塊示意圖,可參考下圖:

exports匯出物件

作用:將模塊中需要共享給其他模塊的資料暴露或匯出到參考處,

語法:exports.屬性或函式,

1. exports示例

如下示例:公開了一個用戶名和sayHi方法到參考處,

1 var username="小六公子";
2 function sayHi(){
3     console.log("hi,小六子");
4 }
5 exports.username=username;
6 exports.sayHi=sayHi;

2. exports注意事項

在使用exports時,注意事項如下:

exports等同于module.exports ,是module.exports的參考,記憶體地址一致;可通過以下方式進行判斷:

exports是一個物件,可以添加屬性和方法,但不可以修改exports指向的內容,如下所示:

1 exports.sayHi=sayHi;
2 exports=sayHi;//此語法是錯誤的,不能修改指向

module模塊物件

在module中最重要的就是exports物件,如下所示:

  1. module.exports,是真正的暴露物件,exports只是對它的參考,
  2. module.exports.屬性=值;
  3. module.exports.方法=函式;
  4. module.exports=物件或函式;//直接匯出物件

module物件的其他屬性:

  1. module.id 模塊的ID,即物件的唯一路徑,
  2. module.parent 模塊的父物件,
  3. module.filename,模塊的檔案名和路徑,
  4. module.children 子模塊,是一個陣列型別,
  5. module.paths 陣列型別,當前模塊查找物件的路徑串列,

關于module物件具體詳細資訊如下所示:

package.json包描述檔案

NPM【Node Package Manager】是基于Node.js的包管理工具,在Node.js專案中,JS的基本單位是單個檔案,但是復雜的模塊往往由多個子模塊組成,為了便于管理和使用,我們可以把由多個模塊組成的大模塊稱為包,并把所有子模塊放在同一個目錄中,組成一個包的所有子模塊中,需要有一個入口,入口模塊的匯出物件被稱為包的匯出物件,默認包中的入口模塊為index.js,也可以在包中新建一個package.json包描述檔案,設定main屬性為模塊的入口,

1. 什么是package.json ?

package.json是node.js專案的包描述檔案,以json格式的形式描述專案,以之前安裝的jQuery為例,可以查看對應的package.json檔案,如下所示:

  1 {
  2   "_from": "jquery",
  3   "_id": "[email protected]",
  4   "_inBundle": false,
  5   "_integrity": "sha512-JVzAR/AjBvVt2BmYhxRCSYysDsPcssdmTFnzyLEts9qNwmjmu4JTAMYubEfwVOSwpQ1I1sKKFcxhZCI2buerfw==",
  6   "_location": "/jquery",
  7   "_phantomChildren": {},
  8   "_requested": {
  9     "type": "tag",
 10     "registry": true,
 11     "raw": "jquery",
 12     "name": "jquery",
 13     "escapedName": "jquery",
 14     "rawSpec": "",
 15     "saveSpec": null,
 16     "fetchSpec": "latest"
 17   },
 18   "_requiredBy": [
 19     "#USER",
 20     "/"
 21   ],
 22   "_resolved": "https://registry.npmjs.org/jquery/-/jquery-3.6.0.tgz",
 23   "_shasum": "c72a09f15c1bdce142f49dbf1170bdf8adac2470",
 24   "_spec": "jquery",
 25   "_where": "D:\\MyProject\\DemoNodeJs",
 26   "author": {
 27     "name": "OpenJS Foundation and other contributors",
 28     "url": "https://github.com/jquery/jquery/blob/3.6.0/AUTHORS.txt"
 29   },
 30   "bugs": {
 31     "url": "https://github.com/jquery/jquery/issues"
 32   },
 33   "bundleDependencies": false,
 34   "commitplease": {
 35     "nohook": true,
 36     "components": [
 37       "Docs",
 38       "Tests",
 39       "Build",
 40       "Support",
 41       "Release",
 42       "Core",
 43       "Ajax",
 44       "Attributes",
 45       "Callbacks",
 46       "CSS",
 47       "Data",
 48       "Deferred",
 49       "Deprecated",
 50       "Dimensions",
 51       "Effects",
 52       "Event",
 53       "Manipulation",
 54       "Offset",
 55       "Queue",
 56       "Selector",
 57       "Serialize",
 58       "Traversing",
 59       "Wrap"
 60     ],
 61     "markerPattern": "^((clos|fix|resolv)(e[sd]|ing))|^(refs?)",
 62     "ticketPattern": "^((Closes|Fixes) ([a-zA-Z]{2,}-)[0-9]+)|^(Refs? [^#])"
 63   },
 64   "deprecated": false,
 65   "description": "JavaScript library for DOM operations",
 66   "devDependencies": {
 67     "@babel/core": "7.3.3",
 68     "@babel/plugin-transform-for-of": "7.2.0",
 69     "commitplease": "3.2.0",
 70     "core-js": "2.6.5",
 71     "eslint-config-jquery": "3.0.0",
 72     "grunt": "1.3.0",
 73     "grunt-babel": "8.0.0",
 74     "grunt-cli": "1.3.2",
 75     "grunt-compare-size": "0.4.2",
 76     "grunt-contrib-uglify": "3.4.0",
 77     "grunt-contrib-watch": "1.1.0",
 78     "grunt-eslint": "22.0.0",
 79     "grunt-git-authors": "3.2.0",
 80     "grunt-jsonlint": "1.1.0",
 81     "grunt-karma": "4.0.0",
 82     "grunt-newer": "1.3.0",
 83     "grunt-npmcopy": "0.2.0",
 84     "gzip-js": "0.3.2",
 85     "husky": "1.3.1",
 86     "insight": "0.10.1",
 87     "jsdom": "13.2.0",
 88     "karma": "5.2.3",
 89     "karma-browserstack-launcher": "1.4.0",
 90     "karma-chrome-launcher": "2.2.0",
 91     "karma-firefox-launcher": "1.1.0",
 92     "karma-ie-launcher": "1.0.0",
 93     "karma-jsdom-launcher": "8.0.2",
 94     "karma-qunit": "3.0.0",
 95     "load-grunt-tasks": "5.1.0",
 96     "native-promise-only": "0.8.1",
 97     "promises-aplus-tests": "2.1.2",
 98     "q": "1.5.1",
 99     "qunit": "2.9.2",
100     "raw-body": "2.3.3",
101     "requirejs": "2.3.6",
102     "sinon": "2.3.7",
103     "sizzle": "2.3.6",
104     "strip-json-comments": "2.0.1",
105     "testswarm": "1.1.2",
106     "uglify-js": "3.4.7"
107   },
108   "homepage": "https://jquery.com",
109   "husky": {
110     "hooks": {
111       "commit-msg": "commitplease .git/COMMIT_EDITMSG",
112       "pre-commit": "grunt lint:newer qunit_fixture"
113     }
114   },
115   "keywords": [
116     "jquery",
117     "javascript",
118     "browser",
119     "library"
120   ],
121   "license": "MIT",
122   "main": "dist/jquery.js",
123   "name": "jquery",
124   "repository": {
125     "type": "git",
126     "url": "git+https://github.com/jquery/jquery.git"
127   },
128   "scripts": {
129     "build": "npm install && grunt",
130     "jenkins": "npm run test:browserless",
131     "start": "grunt watch",
132     "test": "npm run test:slim && npm run test:no-deprecated && npm run test:no-sizzle && grunt && grunt test:slow && grunt karma:main && grunt karma:amd",
133     "test:amd": "grunt && grunt karma:amd",
134     "test:browser": "grunt && grunt karma:main",
135     "test:browserless": "grunt && grunt test:slow",
136     "test:no-deprecated": "grunt test:prepare && grunt custom:-deprecated && grunt karma:main",
137     "test:no-sizzle": "grunt test:prepare && grunt custom:-sizzle && grunt karma:main",
138     "test:slim": "grunt test:prepare && grunt custom:slim && grunt karma:main"
139   },
140   "title": "jQuery",
141   "version": "3.6.0"
142 }
View Code

2. 如何創建package.json檔案?

在node.js中,可以根據向導進行創建,在命令列,切換目錄到程式所在目錄,然后輸入命令【npm init】即可開啟包檔案創建向導,如下所示:

根據向導安裝步驟依次填寫對應資訊,經過以上7步,即可創建包檔案,創建成功后在程式目錄下,如下所示:

 1 {
 2   "name": "demonode",
 3   "version": "1.0.0",
 4   "description": "node示例",
 5   "main": "index.js",
 6   "dependencies": {
 7     "jquery": "^3.6.0"
 8   },
 9   "devDependencies": {},
10   "scripts": {
11     "test": "echo \"Error: no test specified\" && exit 1"
12   },
13   "author": "小六公子",
14   "license": "MIT"
15 }

注意:如果創建默認package.json檔案,可以采用【npm init -y】命令,一鍵生成,

NPM基礎

1. 常用npm命令

常用的npm命令,如下所示:

  1. 安裝命令:通過安裝包命令【 npm install 包名稱】進行安裝指定的第三方包,
  2. 縮寫安裝命令:通過命令【npm i 包名稱】安裝指定的第三方包,
  3. 指定版本安裝:通過命令【npm i 包名稱@verson】安裝指定版本的第三方包,默認安裝最新版本,
  4. 全域安裝:通過命令【npm i 包名稱 -g】進行全域安裝第三方包,即可應用于所有的專案,默認全域安裝目錄【C:\Users\登錄賬號\AppData\Roaming\npm\node_modules】
  5. 安裝同時寫入依賴串列:通過命令【npm i 包名稱 --save】在安裝的同時寫入包描述檔案中的依賴串列中,
  6. 安裝同時寫入開發時依賴串列:通過命令【npm i 包名稱 --save-dev】在安裝的同時寫入包描述檔案中的開發依賴串列中,
  7. 查找包:通過命令【npm serach 包名稱】進行查找,
  8. 預覽包:通過命令【npm view 包名稱】進行預覽包的內容,
  9. 卸載包:通過命令【npm uninstall 包名稱】進行卸載已安裝的包,
  10. 更新包:通過命令【npm update 包名稱】更新包,

2. npm 示例

以npm的安裝和查找為例,如下所示:

cnpm基礎

1. 什么是cnpm ?

npm命令是需要從國外的服務器進行下載和安裝,速度會比較慢,所有為了滿足國內的應用需要,cnpm應運而生,cnpm是淘寶提供的與npm服務器保持同步更新的軟體包鏡像,

目前cnpm的網址為【https://npmmirror.com/package/cnpm】,關于cnpm簡介,如下所示:

2. 使用cnpm

如果要使用cnpm,可以通過命令進行注冊,如下所示:

1 npm install -g cnpm --registry=https://registry.npmmirror.com

cnpm命令使用和npm一致,加上c前綴即可,示例如下所示:

控制臺輸出

1. 控制臺常見輸出

在Node.js做為服務器端運行時環境,所以控制臺輸出也是比較常見,如下所示:

  1. 在Node.js中,控制臺輸出有以下幾種:
  2. console.log(),與瀏覽器中的用法一致,
  3. console.dir() ,輸出目錄資訊,
  4. console.error(),錯誤資訊輸出,
  5. console.time(識別符號) 與console.timeEnd(識別符號)一起使用,可以計算某段程式的執行時間,
  6. console.assert(條件運算式,輸出內容);當條件運算式為假時,輸出內容,

2. 控制臺輸出示例

控制臺輸出的常用語法示例,如下所示:

1 console.log("我是小六子");
2 console.dir("我是小六子呀");
3 console.error("小六子出錯了");
4 console.time("t1");
5 for(var i=0;i<99999;i++){
6     //
7 }
8 console.timeEnd("t1");

示例運行截圖,如下所示:

 

Node.js作用域

1. 什么是作用域?

作用域:規定了一個變數和函式可以使用的范圍,作用域分為兩種:全域作用域,區域作用域【函式作用域】,在Node.js中,一個檔案就表示一個模塊,模塊中使用var定義的變數為區域變數,只能在模塊中使用,因為模塊在使用時會被Node.js編譯為一個函式,

2. 全域變數

如果將資料共享給其他模塊,可以通過兩種方法:

  1. exports.屬性或函式 的方式匯出,
  2. 宣告為全域變數,

全域變數,通過【global.屬性或函式=值】的方式使用,如下所示:

1 var username="小六公子";
2 function sayHi(){
3     console.log("hi,小六子");
4 }
5 global.username=username;
6 global.sayHi=sayHi;

呼叫全部變數,如下所示:

1 var obj =require("./demo01-1.js");
2 console.log(username);
3 sayHi();

注意:global關鍵字在呼叫時可以省略,使用方式幾乎和exports一致,

備注

江上漁者【作者】范仲淹 【朝代】宋

江上往來人,愛鱸魚美,

君看一葉舟,出沒風波里,


作者:小六公子
出處:http://www.cnblogs.com/hsiang/
本文著作權歸作者和博客園共有,寫文不易,支持原創,歡迎轉載【點贊】,轉載請保留此段宣告,且在文章頁面明顯位置給出原文連接,謝謝,
關注個人公眾號,定時同步更新技術及職場文章

轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/444433.html

標籤:其他

上一篇:Cocos 游戲中 JavaScript 腳本模塊化簡述

下一篇:egg-jwt的使用

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • IEEE1588PTP在數字化變電站時鐘同步方面的應用

    IEEE1588ptp在數字化變電站時鐘同步方面的應用 京準電子科技官微——ahjzsz 一、電力系統時間同步基本概況 隨著對IEC 61850標準研究的不斷深入,國內外學者提出基于IEC61850通信標準體系建設數字化變電站的發展思路。數字化變電站與常規變電站的顯著區別在于程序層傳統的電流/電壓互 ......

    uj5u.com 2020-09-10 03:51:52 more
  • HTTP request smuggling CL.TE

    CL.TE 簡介 前端通過Content-Length處理請求,通過反向代理或者負載均衡將請求轉發到后端,后端Transfer-Encoding優先級較高,以TE處理請求造成安全問題。 檢測 發送如下資料包 POST / HTTP/1.1 Host: ac391f7e1e9af821806e890 ......

    uj5u.com 2020-09-10 03:52:11 more
  • 網路滲透資料大全單——漏洞庫篇

    網路滲透資料大全單——漏洞庫篇漏洞庫 NVD ——美國國家漏洞庫 →http://nvd.nist.gov/。 CERT ——美國國家應急回應中心 →https://www.us-cert.gov/ OSVDB ——開源漏洞庫 →http://osvdb.org Bugtraq ——賽門鐵克 →ht ......

    uj5u.com 2020-09-10 03:52:15 more
  • 京準講述NTP時鐘服務器應用及原理

    京準講述NTP時鐘服務器應用及原理京準講述NTP時鐘服務器應用及原理 安徽京準電子科技官微——ahjzsz 北斗授時原理 授時是指接識訓通過某種方式獲得本地時間與北斗標準時間的鐘差,然后調整本地時鐘使時差控制在一定的精度范圍內。 衛星導航系統通常由三部分組成:導航授時衛星、地面檢測校正維護系統和用戶 ......

    uj5u.com 2020-09-10 03:52:25 more
  • 利用北斗衛星系統設計NTP網路時間服務器

    利用北斗衛星系統設計NTP網路時間服務器 利用北斗衛星系統設計NTP網路時間服務器 安徽京準電子科技官微——ahjzsz 概述 NTP網路時間服務器是一款支持NTP和SNTP網路時間同步協議,高精度、大容量、高品質的高科技時鐘產品。 NTP網路時間服務器設備采用冗余架構設計,高精度時鐘直接來源于北斗 ......

    uj5u.com 2020-09-10 03:52:35 more
  • 詳細解讀電力系統各種對時方式

    詳細解讀電力系統各種對時方式 詳細解讀電力系統各種對時方式 安徽京準電子科技官微——ahjzsz,更多資料請添加VX 衛星同步時鐘是我京準公司開發研制的應用衛星授時時技術的標準時間顯示和發送的裝置,該裝置以M國全球定位系統(GLOBAL POSITIONING SYSTEM,縮寫為GPS)或者我國北 ......

    uj5u.com 2020-09-10 03:52:45 more
  • 如何保證外包團隊接入企業內網安全

    不管企業規模的大小,只要企業想省錢,那么企業的某些服務就一定會采用外包的形式,然而看似美好又經濟的策略,其實也有不好的一面。下面我通過安全的角度來聊聊使用外包團的安全隱患問題。 先看看什么服務會使用外包的,最常見的就是話務/客服這種需要大量重復性、無技術性的服務,或者是一些銷售外包、特殊的職能外包等 ......

    uj5u.com 2020-09-10 03:52:57 more
  • PHP漏洞之【整型數字型SQL注入】

    0x01 什么是SQL注入 SQL是一種注入攻擊,通過前端帶入后端資料庫進行惡意的SQL陳述句查詢。 0x02 SQL整型注入原理 SQL注入一般發生在動態網站URL地址里,當然也會發生在其它地發,如登錄框等等也會存在注入,只要是和資料庫打交道的地方都有可能存在。 如這里http://192.168. ......

    uj5u.com 2020-09-10 03:55:40 more
  • [GXYCTF2019]禁止套娃

    git泄露獲取原始碼 使用GET傳參,引數為exp 經過三層過濾執行 第一層過濾偽協議,第二層過濾帶引數的函式,第三層過濾一些函式 preg_replace('/[a-z,_]+\((?R)?\)/', NULL, $_GET['exp'] (?R)參考當前正則運算式,相當于匹配函式里的引數 因此傳遞 ......

    uj5u.com 2020-09-10 03:56:07 more
  • 等保2.0實施流程

    流程 結論 ......

    uj5u.com 2020-09-10 03:56:16 more
最新发布
  • 使用Django Rest framework搭建Blog

    在前面的Blog例子中我們使用的是GraphQL, 雖然GraphQL的使用處于上升趨勢,但是Rest API還是使用的更廣泛一些. 所以還是決定回到傳統的rest api framework上來, Django rest framework的官網上給了一個很好用的QuickStart, 我參考Qu ......

    uj5u.com 2023-04-20 08:17:54 more
  • 記錄-new Date() 我忍你很久了!

    這里給大家分享我在網上總結出來的一些知識,希望對大家有所幫助 大家平時在開發的時候有沒被new Date()折磨過?就是它的諸多怪異的設定讓你每每用的時候,都可能不小心踩坑。造成程式意外出錯,卻一下子找不到問題出處,那叫一個煩透了…… 下面,我就列舉它的“四宗罪”及應用思考 可惡的四宗罪 1. Sa ......

    uj5u.com 2023-04-20 08:17:47 more
  • 使用Vue.js實作文字跑馬燈效果

    實作文字跑馬燈效果,首先用到 substring()截取 和 setInterval計時器 clearInterval()清除計時器 效果如下: 實作代碼如下: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta ......

    uj5u.com 2023-04-20 08:12:31 more
  • JavaScript 運算子

    JavaScript 運算子/運算子 在 JavaScript 中,有一些運算子可以使代碼更簡潔、易讀和高效。以下是一些常見的運算子: 1、可選鏈運算子(optional chaining operator) ?.是可選鏈運算子(optional chaining operator)。?. 可選鏈操 ......

    uj5u.com 2023-04-20 08:02:25 more
  • CSS—相對單位rem

    一、概述 rem是一個相對長度單位,它的單位長度取決于根標簽html的字體尺寸。rem即root em的意思,中文翻譯為根em。瀏覽器的文本尺寸一般默認為16px,即默認情況下: 1rem = 16px rem布局原理:根據CSS媒體查詢功能,更改根標簽的字體尺寸,實作rem單位隨螢屏尺寸的變化,如 ......

    uj5u.com 2023-04-20 08:02:21 more
  • 我的第一個NPM包:panghu-planebattle-esm(胖虎飛機大戰)使用說明

    好家伙,我的包終于開發完啦 歡迎使用胖虎的飛機大戰包!! 為你的主頁添加色彩 這是一個有趣的網頁小游戲包,使用canvas和js開發 使用ES6模塊化開發 效果圖如下: (覺得圖片太sb的可以自己改) 代碼已開源!! Git: https://gitee.com/tang-and-han-dynas ......

    uj5u.com 2023-04-20 08:01:50 more
  • 如何在 vue3 中使用 jsx/tsx?

    我們都知道,通常情況下我們使用 vue 大多都是用的 SFC(Signle File Component)單檔案組件模式,即一個組件就是一個檔案,但其實 Vue 也是支持使用 JSX 來撰寫組件的。這里不討論 SFC 和 JSX 的好壞,這個仁者見仁智者見智。本篇文章旨在帶領大家快速了解和使用 Vu ......

    uj5u.com 2023-04-20 08:01:37 more
  • 【Vue2.x原始碼系列06】計算屬性computed原理

    本章目標:計算屬性是如何實作的?計算屬性快取原理以及洋蔥模型的應用?在初始化Vue實體時,我們會給每個計算屬性都創建一個對應watcher,我們稱之為計算屬性watcher ......

    uj5u.com 2023-04-20 08:01:31 more
  • http1.1與http2.0

    一、http是什么 通俗來講,http就是計算機通過網路進行通信的規則,是一個基于請求與回應,無狀態的,應用層協議。常用于TCP/IP協議傳輸資料。目前任何終端之間任何一種通信方式都必須按Http協議進行,否則無法連接。tcp(三次握手,四次揮手)。 請求與回應:客戶端請求、服務端回應資料。 無狀態 ......

    uj5u.com 2023-04-20 08:01:10 more
  • http1.1與http2.0

    一、http是什么 通俗來講,http就是計算機通過網路進行通信的規則,是一個基于請求與回應,無狀態的,應用層協議。常用于TCP/IP協議傳輸資料。目前任何終端之間任何一種通信方式都必須按Http協議進行,否則無法連接。tcp(三次握手,四次揮手)。 請求與回應:客戶端請求、服務端回應資料。 無狀態 ......

    uj5u.com 2023-04-20 08:00:32 more