整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          快速掃盲容器和服務器之間的區別和聯系

          快速掃盲容器和服務器之間的區別和聯系

          時我們經常看到各種容器名稱:Servlet容器、WEB容器、Java WEB容器、Java EE容器等,還有各種服務器名稱:應用服務器、WEB服務器、WEB應用服務器、JavaWEB應用服務器、Java EE服務器等,這么多相似名稱,難以弄明白它們之間的區別與聯系。

          1、容器與服務器的聯系

          容器是位于應用程序/組件和服務器平臺之間的接口集合,使得應用程序/組件可以方便部署到服務器上運行。

          2、各種容器的區別/聯系

          2-1、容器(Containers)

          容器通常理解就是裝東西的,我們這里說技術上的容器就是可以部署應用程序,并在上面運行的環境

          一般來說,它處理屏蔽了服務器平臺的復雜性,使得應用程序在它的基礎上可以方便快捷的部署;而對于應用程序來說,它就是位于應用程序和平臺之間的接口集合

          容器管理組件的生命周期,向應用程序組件分派請求,并提供與上下文數據(如關于當前請求的信息)的接口。

          2-2、Servlet容器

          Servlet:屬于Java EE重要技術規范,構建了"接收請求--調用servlet程序處理--返回響應"基本模型。

          Servlet程序:Java提供了開發Servlet程序的API,該API可以說Servlet容器的一部分,它對接應用程序與Servlet容器;

          Servlet容器:就是實現了Servlet技術規范的部署環境,它可以部署運行Servlet程序。

          2-3、Java WEB容器

          WEB容器:可以部署多個WEB應用程序的環境。

          Java WEB容器:實現了Java EE規定的WEB應用技術規范的的部署環境。

          Java EE WEB應用技術規范:Servlet、JSP(JavaServer Pages)、Java WebSocket等。

          所以,完整的Java WEB容器包含Servlet容器。

          2-4、Java EE容器

          Java EE容器:實現了Java EE技術規范的部署環境。

          Java EE技術規范:除了上面說的Servlet、JSP等Java EE WEB應用技術規范,還包括EJB(Enterprise JavaBeans)等許多技術規范。

          所以,完整的Java EE容器包含Java WEB容器(Servlet容器)、EJB容器等。

          3、各種服務器的區別/聯系


          3-1、服務器(Server)

          服務器是提供計算服務的設備。由于服務器需要響應服務請求,并進行處理,因此一般來說服務器應具備承擔服務并且保障服務的能力。

          簡單來說,服務器是提供某些服務的設備

          3-2、應用服務器

          應用程序:是指為針對使用者的某種應用目的所編寫的軟件。

          應用服務器:就是運行應用程序,提供應用程序所實現服務的設備

          通常來說,服務器端的應用程序實現各種業務邏輯,應用服務器通過各種協議把這些業務邏輯曝露給客戶端的程序。它提供了訪問商業邏輯的途徑,以供客戶端應用程序使用。應用服務器使用此業務邏輯就像調用對象的一個方法一樣。

          3-3、WEB服務器

          WEB:現廣泛譯作網絡、互聯網等技術領域。表現為三種形式,即超文本(hypertext)、超媒體(hypermedia)、超文本傳輸協議(HTTP)等。

          WEB服務器:一般指網站服務器,可以向瀏覽器等WEB客戶端提供文檔瀏覽、數據文件下載等WEB服務。

          簡單來說,WEB服務器是提供網上信息瀏覽等WEB服務的設備

          3-4、WEB應用服務器

          上面我們把應用服務器和WEB服務器嚴格區分:應用服務器通過應用程序接口(通常是網絡請求API)把業務邏輯暴露給客戶端應用程序。而WEB服務器通過HTTP提供靜態內容給瀏覽器等客戶端。

          如果不嚴格區分,應用服務器包含WEB服務器,因為WEB服務器是WEB服務應用程序實現的。

          WEB應用服務器:結合應用服務器和WEB服務器,可以說,它是帶應用服務器的Web服務器,接收HTTP請求后,既能返回頁面等靜態內容,又能處理業務邏輯返回數據

          3-5、Java EE服務器

          Java EE服務器是實現Java EE技術規范,并提供標準Java EE服務的應用程序服務器。

          Java EE服務器有時稱為應用服務器,因為它們允許您向客戶端提供應用數據,就像Web服務器向Web瀏覽器提供Web頁面一樣。

          4、舉例說明容器以及服務器的聯系

          4-1、Apache、Nginx、IIS

          Apache、Nginx、IIS是目前最主流的三個Web服務器。

          但是可以用它們來構建WEB應用服務器,通常它們發現一個請求是動態請求,就通過CGI、ISAPI、特殊管道等協議接口調用后面的應用服務器來協同處理請求。如Nginx通過fastCGI模塊來調用ZendEngine執行PHP應用來處理PHP請求。

          4-2、Tomcat、Jetty、WebLogic、Websphere、JBoss

          Tomcat、Jetty、WebLogic、Websphere、JBoss都是Java(EE) WEB應用服務器。

          拿最常用的Tomcat來說,Tomcat是Java Servlet,JavaServerPages,Java Expression Language和JavaWebSocket(Java EE)技術的開源實現。

          因為可以通過HTTP提供HTML頁面等靜態內容的請求訪問,所以是一個WEB服務器;

          因為實現了Servlet規范,所以也是一個Servlet容器,可以運行Servlet程序;

          因為可以通過Servlet容器,調用Servlet處理動態請求,所以也是一個應用服務器;

          所以,可以說Tomcat是Java(EE) WEB應用服務器。

          4-3、Nginx + Tomcat的WEB應用服務器(集群)

          一般在實際應用中,先是通過Nginx反向代理服務器接收請求,匹配分離動態/靜態請求(動靜分離),如果是靜態請求,則轉發到另外的Nginx WEB服務器上,返回靜態內容;如果是動態請求,則轉發到后面的Tomcat應用服務器,處理動態請求的業務邏輯。

          什么學習網頁制作?

          互聯網時代的今天,各種各樣的網頁充斥著我們的生活。只要使用瀏覽器,打開的每一個頁面都可以稱之為網頁。即使使用頭條這樣的APP,其內容布局、展示的方法也脫胎于網頁頁面設計的方法與原則。可以說頁面的概念已經遍布我們的信息化世界。

          作為蕓蕓眾生中的一員,學習網頁制作對我們的事業、生活有怎樣的幫助呢?

          第一,學習網頁制作有助于理解網絡信息的傳播運行機制,即使通過本課程不能全面了解這些核心機制,也能為大家鋪墊下繼續深入學習的知識基礎。即使自己不必親自制作網頁,在使用第三方工具時,比如微信公眾號、微信小程序或者其他自動網頁或網站生成工具時也會比沒有基礎的人更快的掌握這些工具。

          第二,學好網頁制作是制作網站的基礎,如果您因為事業需要或者個人愛好打算制作自己的網站或博客,無論是打算使用php還是Java還是Python去構建您的網站,精通網頁制作技術是您的第一塊技術基石。

          第三,如果您打算學習網絡爬蟲來分析一些網絡數據,了解網頁頁面構成也是必要基礎,至少您要知道一個網頁頁面中每個標簽中對應的是哪些信息,才能有的放矢拿到自己想要的信息。

          第四,如果您想學習編程,但是缺少相應的基礎知識,看不懂復雜的C語言教學,那么從網頁制作入手嘗試理解編程的語法也是一個很不錯的選擇。

          除此之外,瀏覽器可以做的事情越來越多,比如webgl的出現,可以讓我們通過瀏覽器構建3d世界,無論是虛擬現實(VR)還是增強現實(AR)都有很多開源免費的解決方案。TensorFlow的JavaScript版本的出現,讓我們可以通過結合瀏覽器學習使用人工智能技術,且非常容易實現。

          所以,新的一年里,我打算做網頁制作的學習教程,讓更多沒有基礎卻對網絡技術感興趣的小伙伴能加入進來。

          制作網頁需要學習哪些技術?

          簡單來說學習網頁制作需要掌握三門技術。

          第一,也是最基礎最核心的內容是HTML超文本標記語言。大家不必糾結HTML到底是什么,但是一定要記住它能干什么。HTML通俗來說可以比喻成容器。大家試想,網頁里都有哪些內容呢?

          一般網頁中都會有文字、圖片、聲音、視頻、表格等內容,這些內容就是靠HTML中的標簽添加進頁面的。

          所以說HTML這個工具就是個容器,我們使用HTML標簽語言為網頁添加所有需要的信息內容。

          第二,CSS層疊樣式表,這是一個用來裝飾頁面的工具。如果說HTML是個信息容器,那么如何讓這些信息條理清晰的顯示出來呢?那就需要CSS來幫忙了。如下圖所示,這是一個最簡單的頁面,只用到了HTML,里面裝了一個標題和一個只有六個字的段落。

          為了讓這個頁面看起來美觀些,我們為其添加css樣式表。添加后如圖所示:

          我們可以看出來,CSS讓標題文字換了顏色,也居中顯示了,背景也變成了藍色。

          第三,JavaScript,這個工具相比HTML和CSS來講是最難學習的,學習JavaScript就是在學習編程了。它雖然只是個腳本語言,但是用到的知識和其他編程語言相差不大。

          那JavaScript能干什么呢?

          首先,它能為頁面中添加很多交互效果。舉個例子,我們常見的圖片翻頁、輪播很多就是基于JavaScript腳本實現的。

          其次,JavaScript可以為傳統頁面擴展出很多新功能,例如結合three.js我們可以很容易的在頁面中構建三維空間,或者實現一些3d游戲或其他三維動態演示效果。舉個例子(https://renaultespace.littleworkshop.fr/),打開可能略慢。3d展示的汽車廣告是不是很酷!

          再次,JavaScript可以以網頁為基礎,實現各種各樣的在線小游戲,例如Phaser.js就是目前非常火的一個開源免費網頁游戲制作庫。phaser官網:http://phaser.io/

          JavaScript為網頁的功能拓展提供了很多可能性,無論是3d顯示還是游戲制作還是未來的人工智能工具,都是由JavaScript都為大家提供了將功能引入到頁面的接口,這也是學習難度比較大的原因。不過只要堅持下去一定能學通的!

          網站與網頁的區別?

          網頁是指我們看到的單個頁面。這些頁面分為靜態頁面和動態頁面兩種。靜態頁面指的是不能與服務器進行數據交互的頁面,顧名思義動態頁面指的是可以與服務器進行數據交互的頁面,這一點大家不必糾結。

          簡單來說,靜態頁面寫好后什么樣就是什么樣,誰打開都是事先編輯好的內容,而動態頁面寫好后會隨著不同的訪問變換不同數據,動態頁面更像是一個頁面模板,隨時套用不同信息

          大部分網站中的頁面都是動態頁面。

          如果使用靜態頁面做網站會出現什么問題呢?如果您有300篇博客文章,那您就要做300個靜態頁面來顯示,大型資訊網站信息量更加龐大,如果都用靜態頁面來做,占用的服務器空間也是龐大到不可想象。

          網站中的動態頁面就解決了這個問題,例如一個簡單的網站我們只需一個主頁、文章頁、搜索頁基本上就可以了,這些頁面中沒有具體內容,我們稱之為模板。當您打開后,顯示的內容都是在數據庫中調出的。這樣,一個數據庫用來存儲壓縮過的精簡信息,這些信息通過不同頁面模板顯示在用戶面前就成為網站的基本運行模式。

          例如在靜態頁面中顯示文字字數的代碼是這樣

          <p>300字</p>

          如果使用以php編寫的WordPress網站框架來動態顯示文章字數就是這樣

          <p><?php echo zm_count_words($text); ?></p>

          <?php echo zm_count_words($text); ?>這條語句可以調取數據庫中文章字數的記錄并顯示出來。這也我們通過這一條語句就可以顯示不同文章的字數了。

          無論是靜態頁面還是動態頁面,他們的核心內容都是一樣的,HTML,CSS,JavaScript都是必修知識。只是靜態頁面在HTML中插入信息,而動態頁面插入的是調取數據庫信息的語句。

          因此,我們這個教程看起來是在做靜態頁面,但是我們學習的也是制作網站的基礎知識。

          本教學學完能干什么?

          第一,可以寫出靜態頁面。

          第二,有能力讀懂他人寫好的頁面代碼。

          第三,為繼續深入學習網站制作或更為炫酷的頁面制作打下基礎。

          第四,掌握編程基礎,至少是基于JavaScript的。

          我是大魚,致力于數字藝術技術分享!歡迎大家關注!祝愿大家2020年學有所成!

          HTML學習目錄

          HTML是什么?——零基礎自學網頁制作

          第一個HTML頁面如何寫?——零基礎自學網頁制作

          HTML頁面中head標簽有啥用?——零基礎自學網頁制作

          初識meta標簽與SEO——零基礎自學網頁制作

          HTML中的元素使用方法1——零基礎自學網頁制作

          HTML中的元素使用方法2——零基礎自學網頁制作

          HTML元素中的屬性1——零基礎自學網頁制作

          HTML元素中的屬性2(路徑詳解)——零基礎自學網頁制作

          使用HTML添加表格1(基本元素)——零基礎自學網頁制作

          使用HTML添加表格2(表格頭部與腳部)——零基礎自學網頁制作

          使用HTML添加表格3(間距與顏色)——零基礎自學網頁制作

          使用HTML添加表格4(行顏色與表格嵌套)——零基礎自學網頁制作

          16進制顏色表示與RGB色彩模型——零基礎自學網頁制作

          HTML中的塊級元素與內聯元素——零基礎自學網頁制作

          初識HTML中的<div>塊元素——零基礎自學網頁制作

          在HTML頁面中嵌入其他頁面的方法——零基礎自學網頁制作

          封閉在家學網頁制作!為頁面嵌入PDF文件——零基礎自學網頁制作

          HTML表單元素初識1——零基礎自學網頁制作

          HTML表單元素初識2——零基礎自學網頁制作

          HTML表單3(下拉列表、多行文字輸入)——零基礎自學網頁制作

          HTML表單4(form的action、method屬性)——零基礎自學網頁制作

          HTML列表制作講解——零基礎自學網頁制作

          為HTML頁面添加視頻、音頻的方法——零基礎自學網頁制作

          音視頻格式轉換神器與html視頻元素加字幕——零基礎自學網頁制作

          HTML中使用<a>標簽實現文本內鏈接——零基礎自學網頁制作

          這么一段HTML,請挑毛病:

          <P> 哥寫的不是HTML,是寂寞。<br><br> 我說:<br>不要迷戀哥,哥只是一個傳說

          這是原來雅虎一道筆試題(文字變了變),用了很多年了,還沒有一個人完全答對過。

          ============== 解答部分 ==============

          出這道題的動機是,太多人覺得HTML太簡單,但它恰恰又是前端開發中最基礎最重要的部分。HTML結構設計的合不合理,直接影響到代碼易不易維護,靈不靈活,同時事關網頁性能,協作效率。碰到不少人認為前端開發就是javascript開發,大錯特錯啊。javascript, html, css這三個前端開發的基礎支柱,性質完全不同又緊密關聯,對它們的正確理解,合理應用是專業與非專業的區別。有些后端工程師可以寫出很漂亮的JS,但他們真的不懂怎么合理的把js, html, css結合起來應用。對html的準確把握,不像學一般的編程語言那樣,而是建立在豐富實踐經驗和體會的基礎上,是前端的工程師的基本功。

          這不是一道較真題或是裝逼題,正經一道“畫雞蛋”的題,考的是基本功。代碼如其人,對一行代碼的理解足以反映出他的前端開發素養。


          言歸正傳。這道題的考點:

          考點1:html和 xhtml的區別

          這行代碼在html 4.01 strict下是完全正確的,在xhtml 1.0 strict下是錯誤一堆的。所以明顯是一個考點。在xhtml下所有標簽是閉合的,p,br需要閉合, 標簽不允許大寫,P要小寫。同時nbsp和br必須包含在容器里。html下這些都不是錯。p在html里是可選閉合標簽,是可以不用閉合的。

          這個考點告訴你xhtml是多么苛刻。這是基本考點,答對,你能拿到60分。

          考點2:考樣式分離

          用nbsp控制縮進是不合理的。應該用CSS干這事。所以應該刪掉nbsp

          考點3:合理使用標簽

          br是強制折行標簽,p是段落。原題用連續的br制造兩個段落的效果,效果是達到了,但顯然用的不合理,段落間距后期無法再控制。正確的做法是用兩個p表現兩個段落。“我說”后面是正常的文字折行用br是合理的。

          上面全答對,你就能拿到100分。


          對原題改進的結果:

          html 4.01:

          <p>哥寫的不是HTML,是寂寞。<p>我說:<br> 不要迷戀哥,哥只是一個傳說

          xhtml 1.0:

          <p>哥寫的不是HTML,是寂寞。</p><p>我說:<br /> 不要迷戀哥,哥只是一個傳說</p>

          加分:合理的用語義化標簽

          在前面的基礎上合理的用語義化標簽,對內容進行必要的標記,是加分的。但過度的使用標簽,就畫蛇添足了。如“我說”的話,可以用q標簽標注。

          <p>哥寫的不是HTML,是寂寞。

          <p>我說:<br> <q>不要迷戀哥,哥只是一個傳說</q>

          我覺得這就夠了,如果再進一步,“我”用cite標注,“HTML” 用abbr或acronym標注(至于再討論abbr和acronym的區別就太較真了),也OK。再復雜就沒必要了。

          <p> 哥寫的不是<abbr title=”Hyper Text Markup Language”>HTML</abbr>,是寂寞。

          <p><cite> 我</cite>說:<br> <q>不要迷戀哥,哥只是一個傳說</q>


          本文只是為了提示實戰中注意細節和風格,養成統一的規約和習慣。無論何種編程語言,養成一種編程規約和風格習慣,都能給你省很多麻煩,還能節約時間。


          主站蜘蛛池模板: 国产精品日本一区二区在线播放| 日韩一区二区三区免费播放| 精品人妻少妇一区二区| 99久久国产精品免费一区二区| 亚洲一区免费观看| 99精品高清视频一区二区| 无码一区二区三区免费| 一区二区三区四区在线视频| 日韩在线视频不卡一区二区三区| 末成年女AV片一区二区| 国产在线精品一区二区在线观看| 国产一区二区在线视频播放| 亚洲欧美日韩一区二区三区| 99久久精品日本一区二区免费| 久久亚洲AV午夜福利精品一区| 国产精品亚洲综合一区| 精品国产一区二区22| 一区免费在线观看| 日亚毛片免费乱码不卡一区| 精品一区二区三区在线视频观看 | 日韩在线视频不卡一区二区三区 | 亚洲AV美女一区二区三区| 中文字幕一区二区免费| 国产精品一区二区av不卡| 小泽玛丽无码视频一区| 精品成人一区二区三区四区| 一区二区三区免费视频观看| 日本人真淫视频一区二区三区| 变态调教一区二区三区| 熟妇人妻一区二区三区四区| 中文字幕av无码一区二区三区电影| 99精品国产一区二区三区| 无码人妻精品一区二区| 国产高清在线精品一区| 亚洲sm另类一区二区三区| 国产综合视频在线观看一区| 精品视频一区二区三区四区五区| 国产日韩一区二区三免费高清 | 精品欧洲av无码一区二区| 国产日韩一区二区三区在线播放| 国产一区二区在线观看|