http-Get Post 区别

227 阅读2分钟

「这是我参与2022首次更文挑战的第29天,活动详情查看:2022首次更文挑战

Get Post 区别

介绍

http 常见的两种请求方式,Get 请求 和 Post 请求

这篇文章讲解下,我对 GetPost 这两个请求的理解和它俩的相同和区别。

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需要重新提交内容