Java Web基礎回顧 —HTTP
- Http 是應用層協議,基於 請求/響應模式,是一種 無狀態的協議。
- Http 1.0 不能持續鏈接,每一次請求都會創建一次TCP鏈接,請求結束後關閉。
Http 1.1加了持續鏈接,客戶端第一次請求會創建TCP鏈接,接下來的請求會一直使用該TCP鏈接,下降了創建鏈接的開銷。
- Http的請求:三個部分: 請求行,消息報頭,請求正文。
請求行:一個方法符號開頭,後面跟着請求URI和協議的版本,以CRLF結尾。請求行以空格分隔。結尾不容許出現其餘字符。GET /test.html HTTP/1.1 (CRLF)。
GET方法用於獲取由Request-URI所標識的資源信息;經過瀏覽器輸入網址訪問網頁,採用的都是GET方法向服務器獲取資源。
POST方法用於向服務器發送請求,要求服務器接受附在請求後面的數據。表單提交的時候用的多。
- 瀏覽器與服務器的通常過程 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);
- 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 服務器當前不可以處理客戶的請求,在一段時間以後,服務器可能會恢復正常。
- Telnet: HTTP協議與TELNET協議都是基於TCP協議。
歡迎關注本站公眾號,獲取更多信息