什麼是http,什麼是tomcat,什麼是Servlet | 程式前沿

文章推薦指數: 80 %
投票人數:10人

一、tomcat是一個封裝和實現了http傳輸協議的容器,那麼http是什麼? http全稱是超文字傳輸協議即是指從全球資訊網伺服器端(http server端)傳送超 ... 程式語言前端開發IOS開發Android開發雲端運算人工智慧伺服器搜尋資料庫軟體開發工具什麼是http,什麼是tomcat,什麼是Servlet2018.08.03程式語言Java拾遺,servlettomcat網路程式設計,一什麼2什麼,什麼,什麼什麼例項,什麼切面什麼切點,子什麼什麼有HOME程式語言什麼是http,什麼是tomcat,什麼是ServletAdvertisement為了不讓網路程式設計在自己看來是一個黑盒子在學習tomcat和servlet,jsp之前,需要了解這些目錄1.一、tomcat是一個封裝和實現了http傳輸協議的容器,那麼http是什麼?2.二.什麼是tomcat3.三、什麼是Servlet一、tomcat是一個封裝和實現了http傳輸協議的容器,那麼http是什麼?http全稱是超文字傳輸協議即是指從全球資訊網伺服器端(httpserver端)傳送超文字到本地瀏覽器的協議它是基於安全連線tcp/ip協議產生的所謂超文字傳輸,傳輸的即是html/css/js視覺化前端程式碼http的特點socket是在底層封裝了tcp/ip協議的java類 http也是基於tcp/ip協議的傳輸協議 如果嘗試在socket中開啟一個埠並等待,獲取socket後輸出這個socket物件通過字元流獲取的請求,然後再在瀏覽器中輸入127.0.0.1:portNum會發現在控制檯中輸出了當前瀏覽器的配置資訊,客戶端ip地址等 簡單的說,socket和http都是封裝了ip/tcp協議,在使用時不需要去在意那些從物理層到網路層等的實現(TTL包頭等),只需要進行業務資料的處理即可 那麼http協議的三個特點,可以結合socket類的執行機制進行理解 A.無連線結合socket進行理解,socket分為serversocket和socket,前者是伺服器端的tcp介面,socket進行資料收發是監聽機制,即伺服器端的serversocket建立好了以後,會開放一個埠進行監聽它的傳輸是通過流進行傳輸的,客戶端socket封裝了一個輸入流一個輸出流,伺服器端serversocket封裝了一個輸入流和一個輸出流,兩個流建立連線後,AtoB,BtoA進行訊息傳送,但是如果!如果在一次請求和迴應之後關閉當前的流,會導致獲取了一個socket請求就將當前監聽埠關閉了可以理解為http沒有對資料進行迴圈監聽和定時重新整理驗證的機制http大概是同理的,它每一次在載入頁面,或者說獲取超文字資料時,沒有一個登陸狀態或者說沒有一個定時重新整理的機制向服務端請求重新整理當前的資料,超文字資料獲取了就獲取,如果需要對頁面的內容進行變更,需要再次根據url/ajax等再次進行請求B.http是媒體獨立的只要客戶端知道如何進行資料處理,理論上可以接受任何形式的資料,這個很好理解,在socket中,傳輸的媒介是通過流實現的,流分很多種,但究其本質都是位元組流的包裝,傳輸資料時本身肯定還是以位元組為單位的C.http是無狀態的這一點其實有一點重複,是根據第一點引申出來的,你每一次通訊都要重新建立連線,傳輸過來的超文字對於客戶來說是可修改的透明的,每一次獲取資料都要重新傳送請求,那自然是無狀態,從這裡大概可以猜測到比如網路遊戲這一類需要保持連線的架構了,tcp/ip可以做成長連線,也可以做成短連線,但是長連線應該也是重複重新整理的短連線吧,只要遵循tcp的長連線協議就可以保持登入狀態,比如諸如java等語言對於長連線就封裝了一個類來簡單實現還有一個有趣的事是作為客戶端向伺服器端傳送時,每次傳送的埠都不同,並且都是50000http報文格式這是http請求報文格式 這是伺服器響應訊息格式下面是我通過瀏覽器向socket傳送url連結請求獲取的Http請求頭二.什麼是tomcat一般的B/S架構web工程結構為下圖:CGI(CommonGatewayInterface)是WWW技術中最重要的技術之一,有著不可替代的重要地位。

CGI是外部應用程式(CGI程式)與WEB伺服器之間的介面標準,是在CGI程式和Web伺服器之間傳遞資訊的過程。

(摘自百度百科)可不可以說Tomcat就是實現了CGI介面的web應用開發的容器?再直白一點,既然socket可以返回響應,那就也可以向客戶端返回一個伺服器相應的資料包,並且將業務需要的超文字內容放到其中,然後傳輸完成一次關一次流實現無連線雙工通訊。

那麼我也能做到B/S互動(事實上已經試驗成功了)但是這樣做很麻煩,更何況在http1.1協議下,還需要考慮到安全問題對不同的請求進行不同的回覆和內容細分,比如Get請求傳送過來,總不可能瞎回一個POST請求的資料包吧,還有一個web專案的基礎邏輯也需要遵守等等這些內容就放到tomcat裡面自行給我們封裝好了,並且還將請求和迴應按照業務劃分成了GET/POST等方法,但是其本質(無連線的雙工TCP/IP通訊)是不變的!這是tomcat的檔案結構tomcat除了實現了http協議以外,還針對javaweb專案做了很多業務優化,簡單的說就是可以更好的管理java專案比如通過war包對工程jar包進行二次封裝,區分公用lib檔案和私有lib檔案,多專案開發管理,JAVAWEB日誌處理等等三、什麼是ServletServlet是一個獨立的開發標準,不是強耦合在Tomcat中的jar包JAVAEE是一個針對JAVA開發的B/S架構專案的框架,簡單的說是一個jar包servlet是其中的一個介面,業務定義為用來處理一部分頁面業務同時也是作為service層和前端html頁面互動的橋樑其中包含的方法包括servlet生命週期,service服務,獲取servlet配置資訊繼承關係GenericServlet抽象類繼承了Servlet介面實現了除Service()以外的方法HTTPServlet繼承了GenericServlet抽象類將Service()方法細分為了doGet(),doPost(),doHead(),doPull()方法不過除了doGet()和doPost(),其它幾個和實現B/S互動業務不太相關Advertisement写评论取消回覆很抱歉,必須登入網站才能發佈留言。

近期文章Spark入門(一)用SparkShell初嘗Spark滋味2019.12.08Spark入門(二)如何用Idea運行我們的Spark項目2019.12.08Spark入門(三)Spark經典的單詞統計2019.12.08Spark入門(四)Spark的map、flatMap、mapToPair2019.12.08Spark入門(五)Spark的reduce和reduceByKey2019.12.08Spark入門(六)Spark的combineByKey、sortBykey2019.12.08Spark入門(七)Spark的intersection、subtract、union和distinct2019.12.08Spark實戰尋找5億次訪問中,訪問次數最多的人2019.12.08Spark實戰搭建我們的Spark分佈式架構2019.12.08【機器學習】深度學習開發環境搭建2019.12.08AdvertisementAdvertisement



請為這篇文章評分?