淺談tomcat和http協議


兩種架構介紹
C/S和B/S是當今世界開發模式技術架構的兩大主流技術。C/S是美國Borland公司最早研發,B/S是美國微軟公司研發。目前,這兩項技術以被世界各國所掌握,國內公司以C/S和B/S技術開發出產品也很多。
c/s 客戶端和服務器 b/s 瀏覽器和服務器
兩種架構的比較
  bs 優勢 更新比較方便

     劣勢 服務器壓力偏大 交互性要差一些
          cs  優勢 服務器壓力偏小,交互性要好一些
     劣勢 更新不方便

web 網頁網站的意思,學習javaWeb 就是用java寫web

 

web包含2類資源的
       靜態資源(不變的資源)
      html js css 圖片 視頻
  動態 資源
    數據實時變化的資源
    在java 可以通過jsp serveet去開發動態網頁

常見的動態網頁開發技術(了解下)
    php 用於中小型網站,開發速度比較快的
    .net c#
    java 用於大型網站 開發速度沒有那么快
    ruby

 

當我們在瀏覽器的的地址輸入來輸入一串網址時   都做了些什么事情

如:http://localhost:8080/

1  瀏覽器 先將域名轉化成ip地址  (這個過程分兩步完成   首先  會在計算機本地的hosts文件中找域名對應  的ip    如果在本地未找到對應的域名   那就到dns  服務器中去找   將對應的域名轉化成ip地址)

2  獲得ip地址后   就能找到網絡中的具體的計算機了

3  根據端口 找到對應計算機的 對應端口中的程序,

 

常見的服務器
    tomcat apache 只支持jsp/servlet規范   免費
    weblogic bea 被oracle收購了 收費的 支持全部規范
    websphere ibm 收費的 支持全部規范

tomcat服務器目錄結構
    bin 執行命令 (開啟服務器 startup.bat 關閉服務器shutdown.bat)
    conf 配置文件
    logs 日志文件
    webapps 我們的web應用
    work tomcat工作的時候產生的文件
    lib tomcat的一些類庫

tomcat服務器部署遇到的問題
    1端口被占用
      java.net.BindException: Address already in use: JVM_Bind <null>:8080

      如果我們沒有打開tomcat 卻提示端口先用,一般有2個解決方案
          1修改我們的tomcat端口
              在conf-->server.xml
                  <Connector port="8080" protocol="HTTP/1.1"
                        connectionTimeout="20000"
                              redirectPort="8443" />
          2找到占用該端口的程序
            netstat -ano 找到pid 去人任務管理器關掉

eclipse 集成tomcat

  1  顯示server控制台 么有顯示的話 windows --> show view ->others -->servers
  2  在該控制台 右鍵 new --》server
  3  在 apache 下選擇對應的tomcat版本
  4  選擇需要發布的應用 (add  and remove)

 

http協議

  中文:超文本傳輸協議      瀏覽器和web服務器之間通訊,使用的是http協議。

HTTP協議永遠都是客戶端發起請求,服務器回送響應。見下圖:(圖片來自網絡   侵刪)
   

 

1.4 工作流程

一次HTTP操作稱為一個事務,其工作過程可分為四步:

1)首先客戶機與服務器需要建立連接。只要單擊某個超級鏈接,HTTP的工作開始。

2)建立連接后,客戶機發送一個請求給服務器,請求方式的格式為:統一資源標識符(URL)、協議版本號,后邊是MIME信息包括請求修飾符、客戶機信息和可能的內容。

3)服務器接到請求后,給予相應的響應信息,其格式為一個狀態行,包括信息的協議版本號、一個成功或錯誤的代碼,后邊是MIME信息包括服務器信息、實體信息和可能的內容。

4)客戶端接收服務器所返回的信息通過瀏覽器顯示在用戶的顯示屏上,然后客戶機與服務器斷開連接。

 

http特征:

1默認端口 80
2底層是基於tcp(三次握手)
3是基於請求 響應模型的一種協議。
一次請求對應一次響應。必須先有請求 再有響應。

 

http協議1.0
  * 鏈接后,只能獲取一個web資源。
  * 鏈接后,發送請求,服務器做出響應,鏈接立即斷開。
http協議1.1(使用)
  * 鏈接后,只能獲取多個web資源。
  * 鏈接后,不會馬上斷開。

常見的請求方式 有 get post delete put
get post有啥區別?
get: get 長度較短   不安全,因為會在url上顯示具體的路徑
post:  post 長度沒有限制,POST的數據不會顯示在 URL 中  所以相對安全。

 

請求:

  請求頭
    * If-Modified-Since 必須和響應頭信息一起來完成控制本地的緩存。
    * Referer 當前的網頁的來源。(防止盜鏈)a網頁訪問b網頁 b的Referer就是a網頁的地址
    * User-Agent 判斷瀏覽器的版本(文件下載的時候)
  請求體
    放post請求的參數

響應 (響應行 響應頭 響應體)
  響應行(協議版本 狀態碼)

    200  請求成功
    302 重定向
    304 訪問本地緩存
    404 找不到
    500 服務器內部錯誤

響應頭

    Content-Type: text/html; charset=GB2312 (響應的文本格式和字符編碼格式)
    Content-Disposition: attachment; filename=aaa.zip
    這三個東西能夠禁止緩存。(要一起設置哈)
        Expires: -1
        Cache-Control: no-cache
        Pragma: no-cache
    location 跟302狀態碼一起完成重定向
    Refresh 頁面當時跳轉

響應體:服務器返回給客服端的數據,


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM