1.get和post定義
- get 和 post請求是http協(xié)議中的兩種請求方式。
- get一般用來獲取服務(wù)器的信息的,post一般是用來更新信息。
2.區(qū)別
1)get請求的參數(shù)會附在URL之后(就是把數(shù)據(jù)放置在HTTP協(xié)議頭中),以?分割URL和傳輸數(shù)據(jù),參數(shù)之間以&相連;POST 請求的參數(shù),放在 Request body中。
所以,GET比POST更不安全,因為參數(shù)直接暴露在URL上,所以不能用來傳遞敏感信息。
2)GET請求在URL中傳送的參數(shù)是有長度限制的,而POST沒有
- (大多數(shù))瀏覽器通常都會限制url長度在1024字節(jié),(大多數(shù))服務(wù)器最多處理64K大小的url。這個限制是瀏覽器或者服務(wù)器給添加的,http協(xié)議并沒有對url長度進行限制,目的是為了保證服務(wù)器和瀏覽器能夠正常運行,防止有人惡意發(fā)送請求。
- GET和POST本質(zhì)上就是TCP鏈接,并無差別。但是由于HTTP的規(guī)定和瀏覽器/服務(wù)器的限制,導(dǎo)致他們在應(yīng)用過程中體現(xiàn)出一些不同:GET產(chǎn)生一個TCP數(shù)據(jù)包;POST產(chǎn)生兩個TCP數(shù)據(jù)包
- 對于GET方式的請求,瀏覽器會把http header和data一并發(fā)送出去,服務(wù)器響應(yīng)200(返回數(shù)據(jù));
- 而對于POST,瀏覽器先發(fā)送header,服務(wù)器響應(yīng)100 continue,瀏覽器再發(fā)送data,服務(wù)器響應(yīng)200 ok(返回數(shù)據(jù))。
3)對參數(shù)的數(shù)據(jù)類型,GET只接受ASCII字符,而POST沒有限制。
- GET請求只能進行url編碼(application/x-www-form-urlencoded):如果數(shù)據(jù)是英文字母/數(shù)字,原樣發(fā)送,如果是空格,轉(zhuǎn)換為+,如果是中文/其他字符,則直接把字符串用BASE64加密,得出如:%E4%BD%A0%E5%A5%BD,其中%XX中的XX為該符號以16進制表示的ASCII。
- 而POST支持多種編碼方式(application/x-www-form-urlencoded 或 multipart/form-data。為二進制數(shù)據(jù)使用多重編碼)
4)GET請求參數(shù)會被完整保留在瀏覽器歷史記錄里,而POST中的參數(shù)不會被保留。
5)GET在瀏覽器回退時是無害的,而POST會再次提交請求。文章來源:http://www.zghlxwxcb.cn/news/detail-656532.html
6)GET請求會被瀏覽器主動cache,而POST不會,除非手動設(shè)置。文章來源地址http://www.zghlxwxcb.cn/news/detail-656532.html
到了這里,關(guān)于【爬蟲】get 和 post 的區(qū)別的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!