您現在的位置是:電腦技術吧?>? 基礎知識 ??>??HTTP,HTTP是什么??>??正文詳情

HTTP,HTTP是什么

成之槐2019-11-18 10:20:35 人圍觀
簡介HTTP下載HTTP定義了與服務器交互的不同方法。有四種基本方法:獲取、發布、放置和刪除。URL的全名是資源描述符。我們可以這樣認為:URL地址用于描述網絡上的資源,而htHTTP協議的功能

Http定義了與服務器交互的不同方法,最基本的方法有4種,分別是GET,POST,PUT,DELETE。

URL全稱是資源描述符,我們可以這樣認 為:一個URL地址,它用于描述一個網絡上的資源,而HTTP中的GET,POST,PUT,DELETE就對應著對這個資源的查,改,增,刪4個操作。

到這里,大家應該有個大概的了解了,GET一般用于獲取/查詢資源信息,而POST一般用于更新資源信息。

  1 .根據HTTP規范,GET用于信息獲取,而且應該是安全的和冪等的。

  (1).所謂安全的意味著該操作用于獲取信息而非修改信息。

換句話說,GET 請求一般不應產生副作用。

就是說,它僅僅是獲取資源信息,就像數據庫查詢一樣,不會修改,增加數據,不會影響資源的狀態。

  * 注意:這里安全的含義僅僅是指是非修改信息。

  (2).冪等的意味著對同一URL的多個請求應該返回同樣的結果。

這里我再解釋一下冪等 這個概念:  冪等 (idempotent、idempotence)是一個數學或計算機學概念,常見于抽象代數中。

  冪等有一下幾種定義:  對于單目運算,如果一個運算對于在范圍內的所有的一個數多次進行該運算所得的結果和進行一次該運算所得的結果是一樣的,那么我們就稱該運算是冪等的。

比如絕對值運算就是一個例子,在實數集中,有abs(a)=abs(abs(a))。

  對于雙目運算,則要求當參與運算的兩個值是等值的情況下,如果滿足運算結果與參與運算的兩個值相等,則稱該運算冪等,如求兩個數的最大值的函數,有在在實數集中冪等,即max(x,x) = x。

  看完上述解釋后,應該可以理解GET冪等的含義了。

  但在實際應用中,以上2條規定并沒有這么嚴格。

引用別人文章的例子:比如,新聞站點的頭版不斷更新。

雖然第二次請求會返回不同的一批新聞,該操 作仍然被認為是安全的和冪等的,因為它總是返回當前的新聞。

從根本上說,如果目標是當用戶打開一個鏈接時,他可以確信從自身的角度來看沒有改變資源即可。

  2 .根據HTTP規范,POST表示可能修改變服務器上的資源的請求。

繼續引用上面的例子:還是新聞以網站為例,讀者對新聞發表自己的評論應該通過POST實現,因為在評論提交后站點的資源已經不同了,或者說資源被修改了。

  上面大概說了一下HTTP規范中GET和POST的一些原理性的問題。

但在實際的做的時候,很多人卻沒有按照HTTP規范去做,導致這個問題的原因有很多,比如說:  1 .很多人貪方便,更新資源時用了GET,因為用POST必須要到FORM(表單),這樣會麻煩一點。

  2 .對資源的增,刪,改,查操作,其實都可以通過GET/POST完成,不需要用到PUT和DELETE。

  3 .另外一個是,早期的Web MVC框架設計者們并沒有有意識地將URL當作抽象的資源來看待和設計,所以導致一個比較嚴重的問題是傳統的Web MVC框架基本上都只支持GET和POST兩種HTTP方法,而不支持PUT和DELETE方法。

  * 簡單解釋一下MVC:MVC本來是存在于Desktop程序中的,M是指數據模型,V是指用戶界面,C則是控制器。

使用MVC的目的是將M和V的實現代碼分離,從而使同一個程序可以使用不同的表現形式。

  以上3點典型地描述了老一套的風格(沒有嚴格遵守HTTP規范),隨著架構的發展,現在出現REST(Representational State Transfer),一套支持HTTP規范的新風格,這里不多說了,可以參考RESTful Web Services。

  說完原理性的問題,我們再從表面現像上面看看GET和POST的區別:  1 .GET請求的數據會附在URL之后(就是 把數據放置在HTTP協議頭中),以?分割URL和傳輸數據,參數之間以相連,如:login.action?name=hyddd password=idontknowverify=你好。

如果數據是英文字母/數字,原樣發送,如果是空 格,轉換為 ,如果是中文/其他字符,則直接把字符串用BASE64加密,得出如:你好,其中%XX中的XX為該符號以 16進制表示的ASCII。

  POST把提交的數據則放置在是HTTP包的包體中。

  2 .GET方式提交的數據最多只能是1024字節,理論上POST沒有限制,可傳較大量的數據,IIS4中最大為80KB,IIS5中為100KB??!  以上這句是我從其他文章轉過來的,其實這樣說是錯誤的,不準確的:  (1).首先是GET方式提交的數據最多只能是1024字節,因為GET是通過URL提交數據,那么GET可提交的數據量就跟URL的長度有直接關系了。

而實際上,URL不存在參數上限的問題,HTTP協議規范沒有對URL長度進行限制。

這個限制是特定的瀏覽器及服務器對它的限制。

IE對URL長度的限制是2083字節(2K 35)。

對于其他瀏覽器,如Netscape、FireFox等,理論上沒有長度限制,其限制取決于操作系統的支持。

  注意這是限制是整個URL長度,而不僅僅是你的參數值數據長度。

[見參考資料5]  (2).理論上講,POST是沒有大小限制的,HTTP協議規范也沒有進行大小限制,說POST數據量存在80K/100K的大小限制是不準確的,POST數據是沒有限制的,起限制作用的是服務器的處理程序的處理能力。

  對于ASP程序,Request對象處理每個表單域時存在100K的數據長度限制。

但如果使用Request.BinaryRead則沒有這個限制。

  由這個延伸出去,對于IIS 6.0,微軟出于安全考慮,加大了限制。

我們還需要注意:  1).IIS 6.0默認ASP POST數據量最大為200KB,每個表單域限制是100KB。

  2).IIS 6.0默認上傳文件的最大大小是4MB。

  3).IIS 6.0默認最大請求頭是16KB。

  IIS 6.0之前沒有這些限制。

[見參考資料5]  所以上面的80K,100K可能只是默認值而已(注:關于IIS4和IIS5的參數,我還沒有確認),但肯定是可以自己設置的。

由于每個版本的IIS對這些參數的默認值都不一樣,具體請參考相關的IIS配置文檔。

  3 .在ASP中,服務端獲取GET請求參數用 Request.QueryString,獲取POST請求參數用Request.Form。

在JSP中,用request.getParameter (/XXXX/)來獲取,雖然jsp中也有request.getQueryString()方法,但使用起來比較麻煩,比如:傳一個 test.jsp?name=hydddpassword=hyddd,用request.getQueryString()得到的是: name=hydddpassword=hyddd。

在PHP中,可以用$_GET和$_POST分別獲取GET和POST中的數據,而$ _REQUEST則可以獲取GET和POST兩種請求中的數據。

值得注意的是,JSP中使用request和PHP中使用$_REQUEST都會有隱患, 這個下次再寫個文章總結。

  4 .POST的安全性要比GET的安全性 高。

注意:這里所說的安全性和上面GET提到的安全不是同個概念。

上面安全的含義僅僅是不作數據修改,而這里安全的含義是真正的Security 的含義,比如:通過GET提交數據,用戶名和密碼將明文出現在URL上,因為(1)登錄頁面有可能被瀏覽器緩存,(2)其他人查看瀏覽器的歷史紀錄,那么 別人就可以拿到你的賬號和密碼了,除此之外,使用GET提交數據還可能會造成Cross-site request forgery攻擊。

  總結一下,Get是向服務器發索取數據的一種請求,而Post是向服務器提交數據的一種請求,在FORM(表單)中,Method默認為GET,實質上,GET和POST只是發送機制不同,并不是一個取一個發!

版權聲明:本文由 成之槐 整理編輯。

原標題:HTTP什么意思,HTTP Error

轉載注明出處:http://www.dn9ww09s.icu/basics/13471.html

文章評論

    共有條評論來說兩句吧...

    用戶名:

    驗證碼:

作者推薦

  • sublime text3是什么,sublimetext

    sublime text3是什么,sublimetext 相關圖片sublime text怎么運行普通用戶可能不知道sublime text 3是什么,但對于編碼人員來說,sublime text 3必須很熟悉。Sublime文本:它是一個經典的代碼編輯器,sublime text使用教程...

  • js和css做網頁,css和js

    js和css做網頁,css和js 相關圖片js添加css最近,我們可以在網站和博客上找到各種各樣的動畫效果。Codyhouse介紹了這些CSS和JavaScript編碼教程,因為每個文件都可以作為一個整體下載,它可以html css js電子版...

  • 蘋果id是什么意思,appleid忘記了怎么辦

    蘋果id是什么意思,appleid忘記了怎么辦 相關圖片蘋果id此時無法創建您的賬戶如果蘋果手機用戶想很好地使用iPhone,首先需要了解一個概念,即什么是蘋果ID蘋果ID是蘋果下的一個安全認證系統。它將所有功能集成到一個帳戶中,允許...

  • 3dmax2015序列號和密匙,3dmax的序列號和密鑰

    3dmax2015序列號和密匙,3dmax的序列號和密鑰 相關圖片3dmax2014序列號激活碼3DMAX是一款經典的三維動畫渲染制作軟件,從事設計行業的朋友不會陌生。3dmax2012是一個經典的版本,它提供了一個新的創造性的工具集,增強了迭代工作流和加3d...

  • 如何導入導出ABAP程序,發那科程序導入和導出

    如何導入導出ABAP程序,發那科程序導入和導出 相關圖片如何進行數據庫的導入和導出對于我們的審計人員來說,Oracle數據庫應該是熟悉和陌生的。我們所熟悉的是,在計算機輔助審計中,經常從被審計單位的Oracle數據庫中導出數據,然后導...

  • chaton,miaouchaton

    chaton,miaouchaton 相關圖片mon chaton很多人覺得聊天有點奇怪。看著手機上的聊天,他們不知道是否可以刪除。Chaton實際上是三星推出的一款聊天軟件Chaton是一款跨平臺的聊天軟件,IOS,Andrchaton是什么軟件...

  • 自適應網頁設計的步驟,自適應網頁設計教程

    自適應網頁設計的步驟,自適應網頁設計教程 相關圖片自動網頁設計自適應布局將成為未來的發展趨勢。本設計滿足以下要求:1。根據用戶窗口的大小進行更改。在一定寬度范圍內提供穩定的視覺體驗。缺點是與老的和非標準的瀏覽器兼容...

  • wapi啥意思,wapi需要開啟嗎

    wapi啥意思,wapi需要開啟嗎 相關圖片wapliPhone7發布后,用戶開始發現WLAN中有一個以前從未出現過的功能WAPI。什么意思?有什么用?WAPI是WLAN加密證書,全名是WLAN auth啟用wapi耗電嗎...

  • 網易云分享歌曲短視頻,網易云視頻怎么下載到本地

    網易云分享歌曲短視頻,網易云視頻怎么下載到本地 相關圖片網易云課題網易云音樂不僅可以聽歌曲,還具有有趣的短視頻功能。如何下載網易云音樂短片?現在,超人軟件編輯將介紹如何下載網易云音樂短片,希望對您有所幫助!網易云音樂短...

  • 指針的用法,this指針的用法

    指針的用法,this指針的用法 相關圖片C 指針如何使用C 的指針?在C 中,指針的使用頻率更高。對于C 中大量的指針用法,有必要搞混。今天,綠茶編輯器總結了指針在C 中的用法,并將其呈現給大家,希望c語言指針用法...

熱評文章

  • dll修復,msvcr80dll丟失怎么修復

    dll修復,msvcr80dll丟失怎么修復 相關圖片怎樣安裝msvcr80dll相信很多玩家和朋友在運行游戲時,偶爾會遇到由于msvcr120.dll丟失而導致的程序錯誤。如何修復msvcr120.dll?如何安裝msvcr120.dllmsvcr100dll...

  • canvas標簽,canvas標簽方法

    canvas標簽,canvas標簽方法 相關圖片canvas標簽的作用HTML5畫布標簽,以實現刮刮卡效果你曾經玩過刮刮卡嗎?意外得獎的人。今天,我想分享一個基于HTML5技術的刮卡效果。只需在PC上按住鼠標,只需在手機上按住手指canv...

  • surface rt越獄,surface rt2越獄

    surface rt越獄,surface rt2越獄 相關圖片surface rt怎么樣2012年,為了對抗蘋果的iPad,微軟推出了自己的平板電腦surface RT,當時很流行,不過現在看起來不太好。然而,許多用戶發現surface-RT存在一surface rt 破解...

  • 超鏈接怎么去除下劃線,超鏈接去除下劃線

    超鏈接怎么去除下劃線,超鏈接去除下劃線 相關圖片ppt超鏈接去掉下劃線一。純工具操作步驟。更容易理解代碼和畫線,這不符合中國人的審美觀念。看著它很尷尬。現在讓我們看看如何擺脫它。實際上很簡單,先創建一個新的超鏈接。...

  • 手機wifi共享精靈,如何共享wifi

    手機wifi共享精靈,如何共享wifi 相關圖片共享wifi對于許多人來說,移動通信仍然非常有價值。大多數情況下,用戶都連接到WiFi進行互聯網接入。為了享受更多可用的WiFi資源,很多人使用WiFi共享向導。但有時我會wifi上網精靈...

  • utorrent沒速度,utorrent下載沒速度

    utorrent沒速度,utorrent下載沒速度 相關圖片utorrent上傳速度為零Utorrent是一個下載外國種子的神奇工具,但許多合作伙伴說Utorrent下載速度不快,他們不懂如何用英語操作。Utorrent的下載速度如何?如何設置電流utorrent加速...

  • 之間和中間有什么區別,與和和的區別

    之間和中間有什么區別,與和和的區別 相關圖片哪里和哪里的區別及用法div和span元素的最大特點是,默認情況下它們不會以任何格式呈現元素中的對象。主要用于應用樣式表。兩者之間最明顯的區別是div是塊元素,而span是內聯元素。...

  • 石墨文檔導出保存在哪里,手機石墨文檔小程序怎么導出

    石墨文檔導出保存在哪里,手機石墨文檔小程序怎么導出 相關圖片石墨文檔導出的word在哪里Graphite文檔是一個功能強大的在線文檔編輯器。通過graphite文檔,用戶和朋友可以同時編輯文檔。那么,石墨文檔如何在任何地方使用呢?如何使用石墨文件?石...

  • acdsee12許可證密鑰,acdsee許可證密鑰是什么意思

    acdsee12許可證密鑰,acdsee許可證密鑰是什么意思 相關圖片acdsee9許可證密鑰ACDSee是一款經典的圖像處理和管理軟件,能夠很好地瀏覽、管理和處理圖像。處理后的圖像也可以共享給更多的人觀看。Acdsee15目前是一個舊版本,但由于它的簡acdsee許...

  • 3D足球,足球員3d教程

    3D足球,足球員3d教程 相關圖片3d足球怎么畫最終效果:很像3D嗎?這些只是幻覺。。看看這個,你會看到一個便條:這是我翻譯的外國網站。如果有任何錯誤的翻譯,請給我一個提示。或操作不當一:創建一個整體標...

關注微信

变脸官网查询