js的服務器(js運行在服務器端還是客戶端)

本文目錄一覽:

js如何讀取服務器端文件目錄

1、先準備一個json文件。

2、使用vscode創建一個html文件。

3、開始撰寫js方法,使用原生javascript來處理,先處理讀取json文件,之後運行這個html。

4、得到的json就是我們index.json文件中的內容。

5、為了便於查看我們json文件的內容顯示在html網頁中。

JS里AJAX的使用–(服務器與客戶端數據交換)

使用ajax需要先了解計算機前後端的通信原理,也就是需要了解我們的服務器與客戶端數據是如何交換的。

DNS的查詢過程:(以訪問為例)

1、在瀏覽器中輸入域名,操作系統會先檢查自己 本地的hosts文件 是否有這個網址映射關係,如果有,就先調用這個IP地址映射,完成域名解析。

2、如果hosts里沒有這個域名的映射,則查找 本地DNS解析器緩存 ,是否有這個網址映射關係,如果有,直接返回,完成域名解析。

3、如果hosts與本地DNS解析器緩存都沒有相應的網址映射關係,首先會找TCP/IP參數中設置的首選DNS服務器,在此我們叫它 本地DNS服務器 ,此服務器收到查詢時,如果要查詢的域名,包含在本地配置區域資源中,則返回解析結果給客戶機,完成域名解析,此解析具有權威性。

4、如果要查詢的域名,不由本地DNS服務器區域解析,但該 服務器 已 緩存 了此網址映射關係,則調用這個IP地址映射,完成域名解析,此解析不具有權威性。

5、如果本地DNS服務器本地區域文件與緩存解析都失效,則根據本地DNS服務器的設置(是否設置轉發器)進行查詢,如果未用轉發模式,本地DNS就把請求發至 根DNS ,根DNS服務器收到請求後會判斷這個域名(.com)是誰來授權管理,並會返回一個負責該 頂級域名服務器 的一個IP。本地DNS服務器收到IP信息後,將會聯繫負責.com域的這台服務器。這台負責.com域的服務器收到請求後,如果自己無法解析,它就會找一個管理.com域的下一級DNS服務器地址(qq.com)給本地DNS服務器。當本地DNS服務器收到這個地址後,就會找qq.com域服務器,重複上面的動作,進行查詢,直至找到主機。

端口號

端口號—具有網絡功能的應用軟件的標識號。注意,端口號是不固定的,即可以由用戶手工可以分配(當然,一般在軟件編寫時就已經定義)。當然,有很多應用軟件有公認的默認的端口,比如FTP:20和21,HTTP:80,TELNET:23等等,這裡就不一一列舉了。一個軟件可以擁有多個端口號,這證明這個軟件擁有不止一個網絡功能。

0-1023是公認端口號,即已經公認定義或為將要公認定義的軟件保留的,而1024-65535是並沒有公共定義的端口號,用戶可以自己定義這些端口的作用。

那麼端口號到底有什麼作用呢?請大家繼續往下看。

當一台電腦啟動了一個可以讓遠程其他電腦訪問的程序,那麼它就要開啟至少一個端口號來讓外界訪問。我們可以把沒有開啟端口號的電腦看作是一個密封的房間,密封的房間當然不可能接受外界的訪問,所以當系統開啟了一個可以讓外界訪問的程序後它自然需要在房間上開一個窗口來接受來自外界的訪問,這個窗口就是端口。

那麼為什麼要給端口編號來區分它們呢,既然一個程序開了一個端口,那麼不是外部信息都可以通過這個開啟的端口來訪問了嗎?答案是不可以。為什麼呢?因為數據是用端口號來通知傳輸層協議送給哪個軟件來處理的,數據是沒有智慧的,如果很多的程序共用一個端口來接受數據的話,那麼當外界的一個數據包送來後傳輸層就不知道該送給哪一個軟件來處理,這樣勢必將導致混亂。

上一次提到提到在一個經過OSI第四層傳輸層封裝的數據段的第四層報頭裡包含兩個端口號,既源端口號和目的端口號,目的端口號的作用上面已經介紹了,下面讓我們了解一下原端口號吧。

源端口號一般是由系統自己動態生成的一個從1024-65535的號碼,當一台計算機A通過網絡訪問計算機B時,如果它需要對方返回數據的話,它也會隨機創建一個大於1023的端口,告訴B返回數據時把數據送到自己的哪個端口,然後軟件開始偵聽這個端口,等待數據返回。而B收到數據後會讀取數據包的源端口號和目的端口號,然後記錄下來,當軟件創建了要返回的數據後就把原來數據包中的原端口號作為目的端口號,而把自己的端口號作為原端口號,也就是說把收到的數據包中的原和目的反過來,然後再送回A,A再重複這個過程如此反覆直到數據傳輸完成。當數據全部傳輸完A就把源端口釋放出來,所以同一個軟件每次傳輸數據時不一定是同一個源端口號.

端口分類 邏輯意義上的端口有多種分類標準,下面將介紹兩種常見的分類:

1、 按端口號分佈劃分

(1)知名端口(Well-Known Ports)

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

(2)動態端口(Dynamic Ports)

動態端口的範圍從1024到65535,這些端口號一般不固定分配給某個服務,也就是說許多服務都可以使用這些端口。只要運行的程序向系統提出訪問網絡的申請,那麼系統就可以從這些端口號中分配一個供該程序使用。比如1024端口就是分配給第一個向系統發出申請的程序。在關閉程序進程後,就會釋放所佔用的端口號。

不過,動態端口也常常被病毒木馬程序所利用,如冰河默認連接端口是7626、WAY 2.4是8011、Netspy 3.0是7306、YAI病毒是1024等等。

2、按協議類型劃分

按協議類型劃分,可以分為TCP、UDP、IP和ICMP(Internet控制消息協議)等端口。下面主要介紹TCP和UDP端口:

(1)TCP端口

TCP端口,即傳輸控制協議端口,需要在客戶端和服務器之間建立連接,這樣可以提供可靠的數據傳輸。常見的包括FTP服務的21端口,Telnet服務的23端口,SMTP服務的25端口,以及HTTP服務的80端口等等。

(2)UDP端口

UDP端口,即用戶數據包協議端口,無需在客戶端和服務器之間建立連接,安全性得不到保障。常見的有DNS服務的53端口,SNMP(簡單網絡管理協議)服務的161端口,QQ使用的8000和4000端口等等。

常用的端口號

【21端口】

21端口主要用於FTP(File Transfer Protocol,文件傳輸協議)服務。

【23端口】

23端口主要用於Telnet(遠程登錄)服務,是Internet上普遍採用的登錄和仿真程序。

【25端口】

25端口為SMTP(Simple Mail Transfer Protocol,簡單郵件傳輸協議)服務器所開放,主要用於發送郵件,如今絕大多數郵件服務器都使用該協議。

【53端口】

53端口為DNS(Domain Name Server,域名服務器)服務器所開放,主要用於域名解析,DNS服務在NT系統中使用的最為廣泛。

【69端口】

TFTP是Cisco公司開發的一個簡單文件傳輸協議,類似於FTP。

【80端口】

80端口是為HTTP(HyperText Transport Protocol,超文本傳輸協議)開放的,這是上網衝浪使用最多的協議,主要用於在WWW(World Wide Web,萬維網)服務上傳輸信息的協議。

【443 端口】

服務:Https

說明:網頁瀏覽端口,能提供加密和通過安全端口傳輸的另一種HTTP。

【109、110端口】

109端口是為POP2(Post Office Protocol Version 2,郵局協議2)服務開放的。

110端口是為POP3(郵件協議3)服務開放的,POP2、POP3都是主要用於接收郵件的。

windows node.js怎麼搭建服務器

這個web服務器包括三塊,app.js是程序入口,負責響應url請求;route.js是路由,用來分發處理複雜的業務邏輯;system.js是配置文件,用來配置服務器參數,如host、port等

首先來看app.js,引用模塊,http處理url請求,url用來解析請求參數和路徑,path只是用來匹配路徑的擴展名o(╯□╰)o,fs用來讀取本地靜態文件,剩下兩個模塊後面詳解。

接下來正式創建服務器處理請求,請求大致分兩類,一類是靜態文件,如xxx.html、xxx.js等等,另一類是進行業務處理,如常見的增刪查改操作,這一部分操作交給路由處理,這裡用了一個簡單的判斷邏輯:通過後綴名,後綴名在system.js中配置。

讀取本地文件的時候要注意一點,那就是緩存。如果客戶端發出重複請求,服務器需要判斷文件自上次請求後是否發生了修改,如果未修改返回304,這樣可以加快瀏覽器端的響應速度。這裡的判斷方式是通過判斷請求的header的if-modified-since時間和本地文件修改時間是否一致,如果一致則返回304,否則重置該時間,第一張圖是代碼,第二張圖是通過chrome調試工具看到的請求頭部時間。

如果需要進行業務處理,則交給路由處理了。首先路由引入具體的業務邏輯模塊,然後通過解析具體的路徑名來執行具體的業務邏輯,這裡注意的是:由於node.js的並發特性,記得傳入回調函數來獲得相應的處理結果。

客戶端js和服務器端js的區別

js一般來說有3塊的內容:

ECMAScript描述語法和基本對象;

文檔對象模型(DOM),描述處理網頁內容的方法和接口,html;

瀏覽器對象模型(BOM),描述瀏覽器的交互方法和接口。

客戶端的js一般3個部分都要用到,2,3就是對頁面內容處理。

服務端js一般只用到第一個部分。和其他服務端語言一樣對數據進行處理。

這絕不是說服務端開發更簡單,而是對於語言內容來說。

.js文件需要什麼服務器承載

WSGI服務器。WSGI服務器的選擇很多,包括uWSGI和gunicorn,它們都可以處理所有的請求,包括由python對象處理的,也包括不是由python對象處理的,比如靜態的圖像,css,js等文件,理論上可以把整個動態網站都用WSGI服務器承載起來,也就是整個應用完全跑在Application服務器上。

JSP引入的js可以直接放在服務器上嗎

不可以,但可以通過填寫JS代碼放上去。

jsp一般是運行在服務器端的經過服務器處理後,生成HTML文件傳回客戶端js是運行在客戶端的。

可以通過編寫如下代碼實現在服務器段編寫JS代碼:,out.printaler\hello~\,out.print,%。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/297495.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-28 12:16
下一篇 2024-12-28 12:16

相關推薦

  • JS Proxy(array)用法介紹

    JS Proxy(array)可以說是ES6中非常重要的一個特性,它可以代理一個數組,監聽數據變化並進行攔截、處理。在實際開發中,使用Proxy(array)可以方便地實現數據的監…

    編程 2025-04-29
  • 服務器安裝Python的完整指南

    本文將為您提供服務器安裝Python的完整指南。無論您是一位新手還是經驗豐富的開發者,您都可以通過本文輕鬆地完成Python的安裝過程。以下是本文的具體內容: 一、下載Python…

    編程 2025-04-29
  • STUN 服務器

    STUN 服務器是一個網絡服務器,可以協助網絡設備(例如 VoIP 設備)解決 NAT 穿透、防火牆等問題,使得設備可以正常地進行數據傳輸。本文將從多個方面對 STUN 服務器做詳…

    編程 2025-04-29
  • 解決docker-compose 容器時間和服務器時間不同步問題

    docker-compose是一種工具,能夠讓您使用YAML文件來定義和運行多個容器。然而,有時候容器的時間與服務器時間不同步,導致一些不必要的錯誤和麻煩。以下是解決方法的詳細介紹…

    編程 2025-04-29
  • 解析js base64並轉成unit

    本文將從多個方面詳細介紹js中如何解析base64編碼並轉成unit格式。 一、base64編碼解析 在JavaScript中解析base64編碼可以使用atob()函數,它會將b…

    編程 2025-04-29
  • Node.js使用Body-Parser處理HTTP POST請求時,特殊字符無法返回的解決方法

    本文將解決Node.js使用Body-Parser處理HTTP POST請求時,特殊字符無法返回的問題。同時,給出一些相關示例代碼,以幫助讀者更好的理解並處理這個問題。 一、問題解…

    編程 2025-04-29
  • t3.js:一個全能的JavaScript動態文本替換工具

    t3.js是一個非常流行的JavaScript動態文本替換工具,它是一個輕量級庫,能夠很容易地實現文本內容的遞增、遞減、替換、切換以及其他各種操作。在本文中,我們將從多個方面探討t…

    編程 2025-04-28
  • Python調用crt telnet客戶端的實現

    本篇文章將詳細介紹如何使用Python調用crt telnet客戶端。我們將從以下幾個方面進行闡述: 一、安裝crt telnet客戶端 首先,我們需要下載並安裝crt telne…

    編程 2025-04-28
  • 如何選擇MySQL服務器文件權限

    MySQL是一種流行的關係型數據庫管理系統。在安裝MySQL時,選擇正確的文件權限是保證安全和性能的重要步驟。以下是一些指導您選擇正確權限的建議。 一、權限選擇 MySQL服務器需…

    編程 2025-04-27
  • JS圖片沿着SVG路徑移動實現方法

    本文將為大家詳細介紹如何使用JS實現圖片沿着SVG路徑移動的效果,包括路徑製作、路徑效果、以及實現代碼等內容。 一、路徑製作 路徑的製作,我們需要使用到SVG,SVG是可縮放矢量圖…

    編程 2025-04-27

發表回復

登錄後才能評論