HTTP中post和get的区别简介

get和post都是HTTP中的八个请求方法之一,面试中经常问到post跟get的区别,个人进行一点总结。

从作用上看:
get是为了获取服务器中的某个数据,不尝试修改数据。

post是为了提交某个表单或者请求信息并且需要修改服务器数据。

从安全性上看:
从服务器的数据角度:get只是获取服务器中的某个数据,不修改服务器的状态,因此是较安全的。post表单提交的过程中会导致数据库状态改变,因此有可能导致一些安全问题,post是不安全的。

从传输的角度:get中使用的编码原因,get容易被截获,因此是不安全的。post是可以使用多种编码的,较安全。

但是归根到底http是明文传输的,作者认为两者都是不安全的。

从浏览器缓存的角度:

get的每次请求对于服务器来说都是无状态的,因此浏览器会采取缓存措施进行缓存。

post的每次请求对于服务器都是有状态改变的,因此浏览器不会进行缓存,如果进行缓存会导致同个请求多次发送,是一种不合理的表现。

从请求发送的角度:

get发送是一次将请求头与请求体发送过去,post是分两次,先发送请求头后发送请求体。

因此有了这样子一个说法:get是回退无害的,post是回退有害的。

从请求数据编码的角度:

get一般只可以使用ASCII编码,post由于其请求的类型可能是表单等其他数据,因此其请求体可以是多种编码。

并且post请求体的长度没有限制,get的请求体长度有限制。

おすすめ

転載: blog.csdn.net/Nimrod__/article/details/115750162