詢問 怎么發(fā)送HTTPget請求?
怎么發(fā)送HTTPget請求?客戶端向WEB服務(wù)端發(fā)送請求報(bào)文,HTTP協(xié)議的請求報(bào)文格式為:請求消息=請求行(實(shí)體頭信息)CRLF[實(shí)體內(nèi)容]請求行=方法URLHTTP版本號(hào)CRLF方法=GET|HE
怎么發(fā)送HTTPget請求?
客戶端向WEB服務(wù)端發(fā)送請求報(bào)文,HTTP協(xié)議的請求報(bào)文格式為:請求消息=請求行(實(shí)體頭信息)CRLF[實(shí)體內(nèi)容]請求行=方法URLHTTP版本號(hào)CRLF方法=GET|HEAD|POST|擴(kuò)展方法URL=協(xié)議名稱+宿主名+目錄與文件名其中"CRLF"表示回車換行。"請求行"中的"方法"描述了對指定資源執(zhí)行的動(dòng)作,常用的方法"GET"、"HEAD"和"POST"等3種·數(shù)據(jù)庫查詢類型對象,獲取該查詢的結(jié)果。HEAD要求服務(wù)器查找對象的元信息。POST從客戶端向WEB服務(wù)器發(fā)送數(shù)據(jù)。"實(shí)體頭信息"中記載了報(bào)文的屬性,利用這些信息可以實(shí)現(xiàn)客戶端與WEB服務(wù)器之間的請求或應(yīng)答,它包括報(bào)文的數(shù)據(jù)類型、壓縮方法、語言、長度、壓縮方法、最后一次修改時(shí)間、數(shù)據(jù)有效期等信息。
GET請求和POST請求的區(qū)別?
從 HTTP 報(bào)文層面來看,GET 請求將信息放在 URL,POST 將請求信息放在請求體中。這一點(diǎn)使得 GET 請求攜帶的數(shù)據(jù)量有限,因?yàn)?URL 本身是有長度限制的,而 POST 請求的數(shù)據(jù)存放在報(bào)文體中,因此對大小沒有限制。而且從形式上看,GET 請求把數(shù)據(jù)放 URL 上感覺不太安全,而 POST 請求把數(shù)據(jù)放在請求體里似乎安全一些。實(shí)際上想要獲取 POST 請求中的內(nèi)容還是很容易的,因此兩者在安全性上其實(shí)沒有太大差異,想要實(shí)現(xiàn)安全的信息傳輸還是得靠 HTTPS。
從數(shù)據(jù)庫層面來看,GET 符合冪等性和安全性,而 POST 請求不符合。這個(gè)其實(shí)和 GET/POST 請求的作用有關(guān)。按照 HTTP 的約定,GET 請求用于查看信息,不會(huì)改變服務(wù)器上的信息;而 POST 請求用來改變服務(wù)器上的信息。正因?yàn)?GET 請求只查看信息,不改變信息,對數(shù)據(jù)庫的一次或多次操作獲得的結(jié)果是一致的,認(rèn)為它符合冪等性。安全性是指對數(shù)據(jù)庫操作沒有改變數(shù)據(jù)庫中的數(shù)據(jù)。
從其他層面來看,GET 請求能夠被緩存,GET 請求能夠保存在瀏覽器的瀏覽記錄里,GET 請求的 URL 能夠保存為瀏覽器書簽。這些都是 POST 請求所不具備的。緩存是 GET 請求被廣泛應(yīng)用的根本,他能夠被緩存也是因?yàn)樗膬绲刃院桶踩?,除了返回結(jié)果沒有其他多余的動(dòng)作,因此絕大部分的 GET 請求都被 CDN 緩存起來了,大大減少了 Web 服務(wù)器的負(fù)擔(dān)。