http協議報文體_HTTP報文基本概念學習

HTTP是什么

HTTP是HyperText Transfer Protocol的縮寫,中文就是超文本傳輸協議,所謂的超,是個學術用語,是基于某種事物增加了更多的信息維度,比如超像素xxx之類的.

協議是什么,協議說白了就是約定,約定就是模板,就是表格,就和你去銀行辦手續一樣,客戶不知道要提供什么信息,銀行又不能一個客戶一個客戶教,所以就準備一樣表格.

HTTP的腦洞(無事實根據)

為什么會有HTTP叫做報文呢,因為我覺得以前最早大家都是通過電報機來遠程快速傳遞信息.由于每個字都老貴了,所以能簡短就簡短.就有了報文這個東西,一般包含以下信息

發件人

收件人

干什么

所以說到了現在都超文本這么吊的東西了,說白了還是和電報一樣,滴滴滴,你發給服務器一個電報,服務器看看,然后滴滴滴,回給你一個電報.這就是所謂的超文本傳輸協議.

但是吊就吊在這個超字上,現在電腦便宜了,大街上一百塊一臺,所以說可以發更多的信息了,所謂更多的信息,就是除了文本本身的內容外,還可以攜帶一些網絡參數以及約定的信息等,是指的信息維度的增加(除去內容還有其它維度),而不是文本內容變長了.

所以說HTTP通信,本質上和以前的電報還是沒有什么區別的,唉,人類真是聰明又愚蠢啊.

HTTP報文格式

就像剛剛說的,一張白紙,怎么寫才能讓兩邊指導什么寫的是什么呢?就牽扯到格式了,這種格式約定就是協議.HTTP其實就是一張這樣的表單

HTTP報文頭

就如同剛剛腦洞中以電報舉例一樣,HTTP的報頭主要是一些參數信息,類似于

發件人

收件人

并不包含實際文本內容

HTTP報文頭首行有3個數據,來分辨這個是Request報文還是Response報文,接下來每行是一個字段和一個內容,這些字段都是W3C規定好的,你當然可以自定義,但是只不過通用標準不認罷了.所以說字段相當于表格中

姓名: some SB

里的姓名,”some SB”這個內容可能會變,但是不管怎么發報文,姓名這一欄不會變.

HTTP報文體

HTTP報文體是開始于HTTP報文頭遇到一個僅有換行的空行開始,這也是為什么會有CRLF換行符注入這種攻擊,因為報文都是通過換行符來判斷哪里是內容開始,報文頭結束.可以通過換行符的注入,當報文頭提前結束,進入報文體.

HTTP的Request和Response

就像剛剛說的一樣,雖然HTTP都是基于報文,但是你發給服務器的電報和服務器返回給你的電報是不同的,他們的主要區別在于兩點

報文頭的字段

報文體是否可以省略

在Request中報文體并不是必須的,有些Request方法中可以省略,而Response中是不可以省略的,如果報文體因為各種情況沒有了,那么就是空返回.

HTTP報文頭的字段

通用字段Connection

Content-Encoding

Content-Length

Content-Type

Transfer-Encoding

請求Request字段Accept

Accept-Encoding

Authorization

Cookie

Host

If-Modified-Since

If-None-Match

Origin

Referer

User-Agent

響應Response字段Access-Control-Allow-Origin

Cache-Control

ETag

Expires

Location

Pragma

Server

Set-Cookie

WWW-Authenticate

X-Frame-Options

HTTP的Request方法

HTTP一共有六種Request方法,其中最重要的是GET和POST方法,除了這兩個外還有剩下四種,但是不太常用.

HEAD

TRACE

OPTIONS

PUT

雖然不太常用,并不是不用注意

比如有根據TRACE的機制進行攻擊的方法.TRACE方法主要用于診斷,服務器會返回Request里所有的報文頭誒報文內容信息,所以在某下情況下,如果本地無法獲取到Request的報文頭,可以通過偽造鏈接,使用TRACE方法從返回報文里都出來Request中的信息.

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/396150.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/396150.shtml
英文地址,請注明出處:http://en.pswp.cn/news/396150.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

yeoman_使用yeoman輕松創建Yeoman生成器

yeomanby Krist Wongsuphasawat克里斯特旺蘇帕薩瓦(Krist Wongsuphasawat) 使用yeoman輕松創建Yeoman生成器 (Creating Yeoman generators easily with yeoman-easily) I’ve used Yeoman to start many of my projects. It’s an amazing web scaffolding tool.我已經用Yeoma…

linux 輕量化圖形界面,YOXIOS 入門教程--基于Linux的 輕量化GUI圖形系統和硬件平臺(41頁)-原創力文檔...

YOXIOS --基于 Linux 的輕量化 GUI圖形系統和硬件平臺YOXIOS 入門教程基于 Linux 的 輕量化 GUI圖形系統和硬件平臺(V1.0 2020-05)提示:閱讀此文檔需要有一定的單片機開發、C/C編程語言、和使用 IDE開發工具的基礎YOXIOS (C) 2020 游芯科技第 1 頁 共 41 頁YOXIOS -…

第一階段 XHTML.定位樣式

一位初學php的隨堂筆記,記錄自己的成長! 1.清除浮動 (1)格式 clear:both清除兩邊|left清除左邊 right清除右邊 高度塌陷:父元素中的子元素都浮動,而父元素 沒有設置高,那父元素的高為0 (2)萬能清除(在父元素…

Canvas入門06-線段與像素邊界

我們知道,使用以下2個API可以繪制一條線段: moveTo(x, y) 向當前路徑中增加一條子路徑,該子路徑只包含一個點,此為線段的起始點lineTo(x, y) 將線段的下一個點加入子路徑中context.strokeStyle rgb(200, 200, 0); context.lineWi…

函數表達書-讀書筆記

定義函數的方式有兩種:一種是函數聲明,另一種就是函數表達式。函數聲明的語法如下: function functionName(arg0,arg1,arg2){//函數體 } 函數聲明,有一個重要特征就是函數聲明提升。也就是在執行代碼之前會先讀取函數聲明&#xf…

vue截取一個字符串_vue 截取字符串

let str abcdef;// 0str str.slice(0);//返回整個字符串 abcdefstr str.substring(0);//返回整個字符串 abcdefstr str.substr(0);//返回整個字符串 abcdef// 使用一個參數str str.slice(2);//截取第二個之后所有的字符 cdefstr str.substring(2);//截取第二個之后所有的…

網絡工程師需要哪些知識_成長工程師可以教給我們哪些工程知識

網絡工程師需要哪些知識I’ve been working as an engineer on the growth team at Airbnb for a couple of months now.我已經在Airbnb的成長團隊擔任工程師幾個月了。 Since I’m in an environment full of passionate developers, I wanted to share some of the good eng…

linux父進程循環,LINUX C 父進程建立多個子進程循環非堵塞回收列子

下面 代碼主要用于復習,留于此點擊(此處)折疊或打開/*************************************************************************> File Name: fork5.c> Author: gaopeng QQ:22389860 all right reserved> Mail: gaopp_200217163.com> Created Time: …

服務器自動運行python_在虛擬主機中安裝了python程序,如何使它在服務器上自動運行?...

{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],"search_count":[{"count_phone":3,"count":3}]},"card":[{"des":"IP地理位置庫(GeoIP Databases)是對運營商分…

模擬測試

題解: 3道水題。。 1。生活大爆炸版剪刀石頭布 忘記怎么打f[5][5]{}這個了。。 然后發現里面啥都不加也可以 加的話要是{} 2.送禮物 雙向搜 有點卡常數。。 我沒寫dfs 寫了dp求多少(好智障啊。。 訪問數組挺慢的所以應該速度差不多。。) lowb…

javascript閉包_通過郵寄包裹解釋JavaScript閉包

javascript閉包by Kevin Kononenko凱文科諾年科(Kevin Kononenko) 通過郵寄包裹解釋JavaScript閉包 (JavaScript Closures Explained by Mailing a Package) 如果您以前寄過包裹或信件,那么您可以了解JavaScript中的閉包。 (If you have mailed a package or lette…

linux 加入ad 用ssh,使用samba驗證AD用戶,允許AD用戶登錄到linux

使用samba驗證AD用戶,允許AD用戶登錄到linux2007年06月26日 星期二 14:101、先把samba加入到AD域中2、在smb.conf中添加一行,讓登錄進來的用戶使用bashtemplate shell /bin/bash3、運行authconfig,在驗證中選擇 使用smb和kerberos,winbind驗…

體會日子

體會日子 開通了博客園, 日子要記錄一下。 以后要好好上進了。 posted on 2016-05-01 23:16 體會日子 閱讀(...) 評論(...) 編輯 收藏 轉載于:https://www.cnblogs.com/yukunshi/p/5451485.html

selenium 難定位元素、時間插件

關于frame: 1. 如果網頁存在iframe的話,傳統的定位有時候找不到元素,需要切換frame; # 切換到leftFrame定位“測井設計” driver.switch_to_frame("leftFrame") driver.find_element_by_link_text(u"設計").click() # 切…

python kmeans聚類 對二維坐標點聚類_Kmeans均值聚類算法原理以及Python如何實現

第一步.隨機生成質心由于這是一個無監督學習的算法,因此我們首先在一個二維的坐標軸下隨機給定一堆點,并隨即給定兩個質心,我們這個算法的目的就是將這一堆點根據它們自身的坐標特征分為兩類,因此選取了兩個質心,什么時…

HDU 2544最短路dijkstra模板題

最短路 Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 33657 Accepted Submission(s): 14617Problem Description在每年的校賽里,全部進入決賽的同學都會獲得一件非常美麗的t-shirt。可是每當我們…

我為期一個月的GitHub的經驗教訓

by JS由JS 我為期一個月的GitHub的經驗教訓 (Lessons from my month-long GitHub commit streak) “I want to learn JavaScript. Like, really learn it. Like, truly understand it.” — me in November 2016“我想學習JavaScript。 喜歡,真正地學習它。 喜歡&a…

安裝itunes需要管理員身份_ITUNES無法安裝,提示沒有權限如何解決?

展開全部注意機器一定要登陸管理員系統,如果現在不是,可以注62616964757a686964616fe78988e69d8331333365646263銷,切換一下用戶。還有計算機不要有漏洞,如果有的話修復一下。打開開始運行,輸入regedit,點擊確認打開注冊表編輯器,…

vs2012新建項目產生的問題

當用vs新建web項目時遇到 只需下載一個vs2012的更新插件 http://download.microsoft.com/download/A/0/2/A02C37E0-77F7-448A-BD5C-F66AB1F78DBC/VS11-KB3002339.exe 點擊安裝更新即可. 轉載于:https://www.cnblogs.com/GreenLeaves/p/5452073.html

zoj4062 Plants vs. Zombies 二分+模擬(貪心的思維)

題目傳送門 題目大意:有n個植物排成一排,標號為1-n,每株植物有自己的生長速度ai,每對植物澆一次水,該株植物就長高ai,現在機器人從第0個格子出發,每次走一步,不能停留,每…