【修真院JAVA小課堂】HTTP協議

大家好,我是我是深圳分院第十期java學員,一枚正直純潔善良的Java程序員。今天給大家分享一下,修真院官網java任務2:HTTP協議

1.背景介紹

什麼是http協議?

HTTP協議是Hyper Text Transfer Protocol(超文本傳輸協議)的縮寫,是用於從萬維網(WWW:World Wide Web )服務器傳輸超文本到本地瀏覽器的傳送協議。

無連接:無連接的含義是限制每次連接只處理一個請求。服務器處理完客戶的請求,並收到客戶的應答後,即斷開連接。採用這種方式可以節省傳輸時間。

HTTP是一個基於TCP/IP協議棧來傳遞數據(HTML 文件, 圖片文件, 查詢結果等)。

HTTP是一個屬於應用層(默認端口80)的面向對象的協議,

2.知識剖析

完整的URL構成:scheme://host:port/path?query#fragment(傳輸協議+域名:端口+資源路徑)

1scheme:通信協議,常用的有http,ftp等

2host:請求的服務器地址+port(端口,默認80)

3query:查詢可選,可傳遞多個參數,用“&”隔開,用=賦值

4fragment:信息片段字符串,用於制定網絡資源中的片段。比如一個網頁有多個名次解釋,可使用fragment直接定位到某一名次解釋

http://www.aspxfans.com:8080/news/index.asp?boardID=5&ID=24618&page=1#name

錨部分(該位置的標識符):從“#”(代表網頁中的一個位置)開始到最後,都是錨部分。本例中的錨部分是“name”

瀏覽器如何通過域名去查詢URL對應的IP(對應服務器地址)?

DNS(Domain Name System,域名系統)

1、瀏覽器緩存:瀏覽器會按照一定的頻率緩存DNS記錄

  2、操作系統緩存


  3、路由緩存


二三級DNS服務器:

根服務器

3.常見問題

1,HTTP請求方法

2,get和post的區別?

http協議:請求方法

根據HTTP標準,HTTP請求可以使用多種請求方法。

HTTP1.0定義了三種請求方法: GET, POST 和 HEAD方法。

HTTP1.1新增了五種請求方法:OPTIONS, PUT, DELETE, TRACE 和 CONNECT 方法。

GET  請求指定的頁面信息,並返回實體主體。

HEAD    類似於get請求,只不過返回的響應中沒有具體的內容,用於獲取報頭。

POST    向指定資源提交數據進行處理請求(例如提交表單或者上傳文件)。數據被包含在請求體中。POST請求可能會導致新的資源的建立和/或已有資源的修改。

PUT  從客戶端向服務器傳送的數據取代指定的文檔的內容。

DELETE  請求服務器刪除指定的頁面。

(1)GET提交,請求的數據會附在URL之後(就是把數據放置在HTTP協議頭中),如果數據是英文字母/數字,原樣發送;如果是空格,轉換爲+;如果是中文/其他字符,則直接把字符串用BASE64加密,得出如: %E4%BD%A0%E5%A5%BD,其中%XX中的XX爲該符號以16進製表示的ASCII。

POST提交:把提交的數據放置在是HTTP包的包體中。上文示例中紅色字體標明的就是實際的傳輸數據。

因此,GET提交的數據會在地址欄中顯示出來,而POST提交,地址欄不會改變。

4.解決方案

5.編碼實戰

http協議:請求消息Request

客戶端發送一個HTTP請求到服務器的請求消息包括以下格式:

請求行(request line)、請求頭部(header)、空行和請求數據四個部分組成。

HttpServletRequest

HttpClient

6.擴展思考

3,http狀態碼有哪些?

狀態代碼有三位數字組成,第一個數字定義了響應的類別,共分五種類別:

1xx:指示信息--表示請求已接收,繼續處理

2xx:成功--表示請求已被成功接收、理解、接受

3xx:重定向--要完成請求必須進行更進一步的操作

4xx:客戶端錯誤--請求有語法錯誤或請求無法實現

5xx:服務器端錯誤--服務器未能實現合法的請求

200 OK                        //客戶端請求成功

400 Bad Request              //客戶端請求有語法錯誤,不能被服務器所理解

403 Forbidden                //服務器收到請求,但是拒絕提供服務

404 Not Found                //請求資源不存在,eg:輸入了錯誤的URL

500 Internal Server Error    //服務器發生不可預期的錯誤

503 Server Unavailable        //服務器當前不能處理客戶端的請求,一段時間後可能恢復正常

7.參考文獻

8.更多討論

1問:HTTP協議狀態碼有哪些:

1答:如200就是成功,400是語法錯誤

2問;get和post的區別?

2答GET提交的數據會在地址欄中顯示出來,而POST提交,地址欄不會改變。

3問:HTTP請求方法

3答

HTTP1.0定義了三種請求方法: GET, POST 和 HEAD方法。

HTTP1.1新增了五種請求方法:OPTIONS, PUT, DELETE, TRACE 和 CONNECT 方法。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章