「这是我参与2022首次更文挑战的第29天,活动详情查看:2022首次更文挑战」
Get Post 区别
介绍
http 常见的两种请求方式,Get 请求 和 Post 请求
这篇文章讲解下,我对 Get,Post 这两个请求的理解和它俩的相同和区别。
Get
请求的 3种结果形式
-
主要是用于 请求资源,去 获取 数据内容。
-
也可以是用于 请求链接 进行 下载。
-
也是 search 后,搜查的内容,通过 key,value 键值对,& 进行拼接的形式,显示在 URL 中。
总结
Get 请求的内容,一般都会体现在 URL 中。
此时服务器会对URL上的参数,来进行解析和匹配 返回相应的资源给 浏览器。
不会对服务器上的状态产生影响。
Post
主要是用于 提交,投递,创建,更新
将在浏览器编写的内容 放到请求体 body 中,不显示在URL上。
将内容提交给服务器,服务器会对传过来的数据,进行判断,是对数据库内容进行 创建 还是 更新 等操作。
会对服务器上的状态产生影响。
相同
-
都是 TCP 链接
-
都不是安全的,post请求也不是加密的。http下明文传输,不安全,https加密安全。
-
都可以向服务器传递参数
-
都可以获取服务器返回的响应
-
只能客户端发请求,服务端进行响应。不存在服务端找客户端
区别
-
Get请求URL上,Post请求在请求体body中
-
Get请求的 URL 的长度是有限制的,一般最大为2M,2048个字符。以此来限制请求的内容。
URL的长度限制是通过浏览器来限制的,服务器也可以对URL的长度做出限制(服务器处理长的 URL 要消耗比较多的资源,为了性能和安全,也会加限制)。
Post 请求主体内容是没有限制的(但是 浏览器和服务器会对请求主体做出限制)
-
Get请求一般都有缓存,Post请求一般没有缓存(不能说Post请求一定没有缓存)
-
Get请求编码方式一般为 Content-Type:application/x-www-form-urlencoded
而 Post 请求的形式有很多,例如文件上传的 Content-Type:multipart/form-data
-
Get请求服务器获取数据(也可以提交数据),Post将数据发送到服务器,创建或更新服务器
-
刷新,Get无影响,Post需要重新提交内容