⑴ HTTP請求里包括些什麼內容HTTP響應里包括些什麼內容
內容優點多。
暑假做協議分析的時候研究了一下。。
HTTP協議是我們網路中必不可少的重要協議。那麼下面我們就來對這方面的問題進行一下深入講解。那麼我們就針對GET方法實現HTTP協議的具體操作進行一下分析。HTTP協議用於在Internet上發送和接收消息?HTTP協議是一種請求-應答式的協議??客戶端發送一個請求,伺服器返回該請求的應答,所有的請求與應答都是HTTP包?HTTP協議使用可靠的TCP連接,默認埠是80?HTTP的第一個版本是HTTP/0.9,後來發展到了HTTP/1.0,現在最新的版本是HTTP/1.1?HTTP/1.1由RFC 2616 定義?
在HTTP中,Client/Server之間的會話總是由客戶端通過建立連接和發送HTTP請求包初始化,伺服器不會主動聯系客戶端或要求與客戶端建立連接?瀏覽器和伺服器都可以隨時中斷連接,例如,在瀏覽網頁時你可以隨時點擊「停止"按鈕中斷當前的文件下載過程,關閉與Web伺服器的HTTP連接?
1 HTTP請求包
HTTP請求包(GET?POST等請求方法)由三個部分構成,分別是:方法-URI-協議/版本,請求頭,請求正文?下面是一個HTTP協議請求包(GET)的例子:
1.GET /index.jsp HTTP/1.1
2.Accept-Language: zh-cn
3.Connection: Keep-Alive
4.Host: 192.168.0.106
5.Content-Length: 37
6.userName=new_andy&password=new_andy
請求包的第一行是方法-URI-協議/版本:
GET就是請求方法,根據HTTP標准,HTTP協議請求可以使用多種請求方法?HTTP 1.1支持七種請求方法:GET?POST?HEAD?OPTIONS?PUT?DELETE和TRACE等,常用的為請求方法是GET和POST?
/index.jsp表示URI?URI指定了要訪問的網路資源?HTTP/1.1是協議和協議的版本?
最後一行userName=new_andy&password=new_andy為正文,正文與HTTP頭部有一個空行(rn)分隔?這里需要說明的一點,其中Content-Length說明正文的長度,有的正文長度沒有在頭部說明,只是標明Transfer-Encoding: chunked?關於chunked類型的長度計算方法,見RFC 1626?
請求包的頭部還會包含許多有關客戶端環境和請求正文的有用信息,這里不再描述?
2 HTTP協議應答包
和HTTP請求包相似,由三個部分構成,分別是:協議-狀態代碼-描述,應答頭,應答正文?下面是一個HTTP應答的例子:
1.HTTP/1.1 200 OK
2.Server: Microsoft-IIS/4.0
3.Date: Mon, 3 Jan 2005 13:13:33 GMT
4.Content-Type: text/html
5.Last-Modified: Mon, 11 Jan 2004 13:23:42 GMT
6.Content-Length: 90
7.<html>
8.<head>
9.<title>解讀HTTP包示例</title></head><body>
10.Hello WORLD!
11.</body>
12.</html>
HTTP應答包的第一行類似於HTTP協議請求的第一行,表示所用的協議是HTTP 1.1,伺服器處理請求的狀態碼200?
應答頭也和請求頭一樣包含許多有用的信息,例如伺服器類型?日期時間?內容類型和長度等?應答的正文就是伺服器返回的HTML頁面?應答頭和正文之間也用CRLF分隔?
⑵ HTTP請求/響應分別包含哪些部分
你用Telnet命令試一下就知道
比如有個網頁http://www..com
你這樣使用Telnet命令:
telnet www..com 80
連接後輸入GET / (這就是你的HTTP請求)
然後就看到響應了,先是一個HTTP響應頭,說明返回內容的長度、屬性、編碼形式,最後是內容,非常標準的一個TCP協議
具體你搜一下http 1.1協議指南
⑶ http請求的三大組成部分:請求行、請求頭和請求體分別包含哪些內容
http請求信息由請求方法、請求頭和請求文本三部分組成。
第一,BasicAuth
這是一種不安全的用戶驗證方法,通常受到用戶授權的限制。用戶名密碼(明文)將被添加到headers的Autheration欄位中。如果驗證失敗,請求將失敗。現在這種認證方法正在被淘汰。
第二、Referer
鏈接的來源通常在訪問鏈接時帶有Refer欄位,伺服器驗證來源,後台通常使用該欄位作為防盜鏈的依據。
第三、User-Agent
後台通常通過這個欄位來判斷用戶設備的類型、系統和瀏覽器的版本。一些編程語言包中的網路請求可以定製User-Agent,並且可以在爬蟲中設置為瀏覽器的ua
第四,Cookie
一般而言,在用戶登錄或某些操作之後,伺服器端會在返回包中包含Cookie信息,要求瀏覽器設置Cookie,沒有Cookie很容易被識別為偽造請求;還有本地通過JS,根據伺服器端返回的某一信息處理生成的加密信息,設置在Cookie中
第五,JavaScript加密操作
在傳輸敏感數據時,通常通過javascript加密。例如,qq空間將RSA加密用戶登錄密碼,然後發送到伺服器。因此,爬蟲需要在模擬登錄時要求公鑰並加密。
第六,定製欄位
由於http的headers可以定製地段,因此第三方可能會添加一些定製的欄位名或欄位值,這也是需要注意的。
⑷ http請求頭信息包含哪些欄位舉例說明
很多,網上搜索更方便,學會自已找網路資料
⑸ http協議包含哪幾個部分
HTTP 協議定義伺服器端和客戶端之間文件傳輸的溝通方式。目前HTTP協議的版本是Http1.1。RFC 2616描述了HTTP協議的具體信息。
這個協議已經成為瀏覽器和Web站點之間的標准。
當我上網的時候底層是如何進行交互的?
當訪問者點擊一個超鏈接的時候,將會給瀏覽器提交一個URL地址。通過這個URL地址,瀏覽器便知道去鏈接那個網站並去取得具體的頁面文件(也可能是一張圖片,一個pdf文件)。
HTTP工作的基礎就是,連接一個伺服器並開始傳輸文件到瀏覽器。
HTTP傳輸的基本過程
在http傳輸的過程中,被稱為客戶端的請求者向伺服器請求一個文件。
最基本的過程是:
1 客戶端連接一個主機;
2 伺服器接收連接,
3 客戶端請求一個文件,
4 伺服器發送一個應答.
⑹ HTTP請求方法有哪些
HTTP請求的方法:
HTTP/1.1協議中共定義了八種方法(有時也叫「動作」),來表明Request-URL指定的資源不同的操作方式
1、OPTIONS
返回伺服器針對特定資源所支持的HTTP請求方法,也可以利用向web伺服器發送『*』的請求來測試伺服器的功能性
2、HEAD
向伺服器索與GET請求相一致的響應,只不過響應體將不會被返回。這一方法可以再不必傳輸整個響應內容的情況下,就可以獲取包含在響應小消息頭中的元信息。
3、GET
向特定的資源發出請求。注意:GET方法不應當被用於產生「副作用」的操作中,例如在Web Application中,其中一個原因是GET可能會被網路蜘蛛等隨意訪問。Loadrunner中對應get請求函數:web_link和web_url
4、POST
向指定資源提交數據進行處理請求(例如提交表單或者上傳文件)。數據被包含在請求體中。POST請求可能會導致新的資源的建立和/或已有資源的修改。 Loadrunner中對應POST請求函數:web_submit_data,web_submit_form
5、PUT
向指定資源位置上傳其最新內容
6、DELETE
請求伺服器刪除Request-URL所標識的資源
7、TRACE
回顯伺服器收到的請求,主要用於測試或診斷
8、CONNECT
HTTP/1.1協議中預留給能夠將連接改為管道方式的代理伺服器。
注意:
1)方法名稱是區分大小寫的,當某個請求所針對的資源不支持對應的請求方法的時候,伺服器應當返回狀態碼405(Mothod Not Allowed);當伺服器不認識或者不支持對應的請求方法時,應返回狀態碼501(Not Implemented)。
2)HTTP伺服器至少應該實現GET和HEAD/POST方法,其他方法都是可選的,此外除上述方法,特定的HTTP伺服器支持擴展自定義的方法。
⑺ http協議包括哪些內容
http協議 包含 http協議的請求和http協議的響應。
http協議的請求 又包含如下內容
:
1,請求方法-URL-協議/版本
2,請求頭
3,請求正文
http響應的請求 又包含如下內容
:
1,狀態行
2,響應頭
3,響應正文
在接受和解釋請求的消息之後,伺服器會返回一個http的響應消息
狀態行由協議版本,數字形式的狀態碼以及相應的狀態描述 各個元素之間以空格分開