Java Web基礎回顧 —HTTP

  1. Http 是應用層協議,基於 請求/響應模式,是一種 無狀態的協議
  2. Http 1.0 不能持續鏈接,每一次請求都會創建一次TCP鏈接,請求結束後關閉。
    Http 1.1加了持續鏈接,客戶端第一次請求會創建TCP鏈接,接下來的請求會一直使用該TCP鏈接,下降了創建鏈接的開銷。
  3. Http的請求:三個部分: 請求行,消息報頭,請求正文。
    請求行:一個方法符號開頭,後面跟着請求URI和協議的版本,以CRLF結尾。請求行以空格分隔。結尾不容許出現其餘字符。GET /test.html HTTP/1.1 (CRLF)。
    GET方法用於獲取由Request-URI所標識的資源信息;經過瀏覽器輸入網址訪問網頁,採用的都是GET方法向服務器獲取資源。
    POST方法用於向服務器發送請求,要求服務器接受附在請求後面的數據。表單提交的時候用的多。
  4. 瀏覽器與服務器的通常過程 Java服務器:
    服務器端:ServerSocket serverSocket = new ServerSocket(80);
    serverSocket.accept(); //服務器是阻斷式訪問,accept方法會一直等待客戶端鏈接。
    客戶端輸入:www.baidu.com :80 —> DNS(Domain Name Service) —>221.179.180.20:80
    Socket socket = new Socket(「221.179.180.20」,80);
  5. HTTP響應:
    狀態行: HTTP-Version Status-Code Reason-Phrase CRLF eg: HTTP/1.1 200 OK
    狀態代碼:
    • 1XX: 指示信息-表示請求已接受,繼續處理。
    • 2XX: 成功-表示請求已經被成功接收,理解,接受。
      200 : OK 客戶端請求成功。
    • 3XX: 重定向-要完成請求必須進行更進一步的操做。
    • 4XX: 客戶端錯誤-請求由語法錯誤或請求沒法實現。
      400 : Bad Request 因爲客戶端請求有語法錯誤,不能被服務器所理解。
      401 : Unauthorized 請求未經受權,這個狀態碼必須和WWW-Authenticate報頭域一塊兒使用。
      404 : Not Found 請求的資源不在,好比輸入了錯誤的URL。
    • 5XX: 服務器端錯誤-服務器未能實現合法的請求。
      500 : Internal Server Error 服務器發生不可預期的錯誤,致使沒法完成客戶的請求。
      503 : Service Unavailable 服務器當前不可以處理客戶的請求,在一段時間以後,服務器可能會恢復正常。
  6. Telnet: HTTP協議與TELNET協議都是基於TCP協議。
相關文章
相關標籤/搜索