大家好,我是我是深圳分院第十期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 方法。