摘要:向指定資源提交數據比如提交表單,上傳文件,請求服務器進行處理。通過指定資源的唯一標識在服務器上的具體存放位置,請求服務器創建或更新資源。請求中會把和一并發送,但是會先發送瀏覽器響應之后,再發送。
HTTP請求
HTTP請求由三部分組成:
請求行:包含請求方法、地址和HTTP的協議版本
消息報頭:包含一系列的鍵值對
請求正文(可選):和消息報頭之間有一個空行
信息報頭中的主要信息有
Host 是請求報頭域,用于指定被請求資源的 Internet 主機和端口號,它通常從 HTTP URL 中提取出來;
Connection 表示連接狀態,keep-alive 表示該連接是持久連(persistent connection),即 TCP 連接默認不關閉,可以被多個請求復用,如果客戶端和服務器發現對方有一段時間沒有活動,就可以主動關閉連接;
Cache-Control 用于指定緩存指令,它的值有 no-cache, no-store, max-age 等,max-age=秒表示資源在本地緩存多少秒;
User-Agent 用于標識請求者的一些信息,比如瀏覽器類型和版本,操作系統等; Accept
用于指定客戶端希望接受哪些類型的信息,比如 text/html, image/gif 等;
Accept-Encoding 用于指定可接受的內容編碼;
Accept-Language 用于指定可接受的自然語言;
Cookie 用于維護狀態,可做用戶認證,服務器檢驗等,它是瀏覽器儲存在用戶電腦上的文本片段;
HTTP的請求方式HTTP請求方式通常有幾種方式
GET(SELECT):
從服務器取出資源(一項或多項),從服務器獲取指定(請求地址)的資源信息,它通常只用于讀取數據,就像數據庫查詢一樣,不會對資源進行修改
POST(CREATE):在服務器新建一個資源。向指定資源提交數據(比如提交表單,上傳文件),請求服務器進行處理。數據被包含在請求正文中,這個請求可能會創建新的資源,或者更新現有的資源
PUT(UPDATE): 在服務器更新資源(客戶端提供改變后的完整資源)。通過指定資源的唯一標識(在服務器上的具體存放位置),請求服務器創建或更新資源。
PATCH(UPDATE):在服務器更新資源(客戶端提供改變的屬性)。
DELETE(DELETE):從服務器刪除資源。
HEAD:獲取資源的元數據
OPTIONS:獲取信息,關于資源的哪些屬性是客戶端可以改變的。
GET和POST的區別:get的數據在url上,post在request body上
get只能進行url編碼,post有多種編碼方式
get是tcp/ip一次,post是兩次
對get的參數有字符限制,而post沒有(瀏覽器對URL的長度有限制,所以GET請求不能代替POST請求發送大量數據)
get請求會被瀏覽器緩存,但是post不會,除非手動設置
當瀏覽器回退時,get是沒有影響的,但是post會再次提交請求
對參數的數據類型,get只能是ASCII字符,但是post沒有限制
對于第三點中的:get只產生一個TCP數據包,post是兩個數據包。get請求中會把header和data一并發送,但是post會先發送header,瀏覽器響應100 continue之后,再發送data。
GET請求是冪等的
舉個例子:
GET只需要汽車跑一趟就能把貨送到,而POST要跑兩趟。第一趟先去和服務器打個招呼“hi,我等下要送一批貨,你們打開門迎接我”,然后再回頭把貨送過去。
因為POST需要兩步,時間上消耗的要多一點,看起來GET比POST更有效,但是不能隨便改變兩種請求方式
1.get和post都有自己的語義,不能隨便混用
2.網絡環境好的時候,發一次包的時間和發兩次寶的時間基本可以忽略。但是在網絡環境差的情況下,兩次包的TCP在驗證數據包完整性上,有非常大的優點
3.并不是所有瀏覽器都會在POST中發送兩次包,Firefox就只發送一次。
客戶端/服務端模式
簡單快速:客戶端向服務器請求服務時,通過傳送請求方式、請求地址和數據體(可選)即可
靈活:允許傳輸任意類型的數據對象,通過Content-Type標識
無狀態:對事物處理沒有記憶能力
小結HTTP 是在網絡上傳輸 HTML 的協議,用于瀏覽器和服務器的通信,默認使用 80 端口。
URL 地址用于定位資源,HTTP 中的 GET, POST, PUT, DELETE 用于操作資源,比如查詢,增加,更新等
GET, PUT, DELETE 是冪等的,POST 是不冪等的。
POST VS PUT
- 使用 PUT 創建資源需要提供資源的唯一標識(具體存放位置),POST 不需要,POST 的數據存放位置由服務器自己決定 - 使用 PUT 更新某一資源,需要更新資源的全部屬性;而使用 POST,可以更新全部或一部分值 - POST 是不冪等的,PUT 是冪等的,這是一個很重要的區別
GET 可提交的數據量受到 URL 長度的限制,HTTP 協議規范沒有對 URL 長度進行限制,這個限制是特定的瀏覽器及服務器對它的限制。
理論上講,POST 是沒有大小限制的,HTTP 協議規范也沒有進行大小限制,出于安全考慮,服務器軟件在實現時會做一定限制
參考鏈接:
99%的人都理解錯了HTTP中GET與POST的區別
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/88160.html
摘要:原文地址唯一的生成并不是一件小事想說愛它也并不是像簡單來一個這樣一件容易的事為什么要唯一數據庫的自增在分庫的時候會是一場災難假設分兩個庫因為每個庫都會開始從開始自增屆時系統中將會出現兩個為的用戶自增會暴露用戶量或者其他業務量自增會讓有心者 [原文地址:https://blog.ti-node.com/blog...] 唯一ID的生成并不是一件小事 , 想說愛它 , 也并不是像簡單來一個...
摘要:扶持權利聯盟成員有權自薦所屬自媒體參與的扶持計劃,包括但不限于品牌背書資源扶持資金扶持。 PlusMedia PlusMedia自媒體聯盟,是國內一線互聯網技術自媒體人最早自覺成立的民間合作 互助組織,聯盟成員近五十位,覆蓋逾70萬互聯網技術從業人員,是當前中國最大的互聯技術圈的自媒體聯盟。該平臺旨在促進互聯技術自媒體人價值的挖掘、培育、服務和變現,為廣大互聯網技術人員提供最新技術,培...
摘要:從外媒的報道來看,蘋果與亞洲汽車供應商目前探討的焦點,是在全球芯片短缺給汽車行業帶來重大影響的大背景下,如何生產蘋果汽車。值得注意的是,此前也曾出現蘋果高管拜訪亞洲汽車零部件制造商和整車組裝廠商的消息。 .markdown-body{color:#595959;font-size:15px;font-family:-apple-system,system-ui,BlinkMacSystem...
摘要:如果用戶不進行充值并手動續費,則扣費失敗,資源狀態顯示為已過期產品到期通知提醒。續費有效期過期產品的續費。有效期內的續費行為是在原續費周期結算后開始新的方式。1、預付費產品支持開關自動續費功能 開啟自動續費開關,當您的賬戶余額充足時,系統會在即將到期時,自動為您續費。需要特別說明的是,自動續費是按之前的配置和時長為您自動續費。當賬戶余額不足時,系統在資源即將到期時,會扣費失敗,資...
閱讀 1211·2021-09-03 10:44
閱讀 609·2019-08-30 13:13
閱讀 2801·2019-08-30 13:11
閱讀 1971·2019-08-30 12:59
閱讀 1037·2019-08-29 15:32
閱讀 1599·2019-08-29 15:25
閱讀 996·2019-08-29 12:24
閱讀 1285·2019-08-27 10:58