POST和GET的区别以及HTTP的状态码解析

什么是HTTP

超文本传输协议(HTTP)的设计目的是保证客户机与服务器之间的通信。

HTTP 的工作方式是客户机与服务器之间的请求-应答协议。

web 浏览器可能是客户端,而计算机上的网络应用程序也可能作为服务器端。

举例:客户端(浏览器)向服务器提交 HTTP 请求;服务器向客户端返回响应。响应包含关于请求的状态信息以及可能被请求的内容。

两种 HTTP 请求方法:GET 和 POST

在客户机和服务器之间进行请求-响应时,两种最常被用到的方法是:GET 和 POST。

GET - 从指定的资源请求数据。
POST - 向指定的资源提交要被处理的数据

GET 方法
请注意,查询字符串(名称/值对)是在 GET 请求的 URL 中发送的:

/test/demo_form.asp?name1=value1&name2=value2


POST 方法
请注意,查询字符串(名称/值对)是在 POST 请求的 HTTP 消息主体中发送的:

POST /test/demo_form.asp HTTP/1.1
Host: 123.com
name1=value1&name2=value2

区别:
1.url可见性:
get,参数url可见
post,url参数不可见


2.传输数据的大小:
get一般传输数据大小不超过2k-4k
post请求传输数据的大小根据php.ini 配置文件设定,也可以无限大


3.缓存性:
get请求是可以缓存的
post请求不可以缓存
**GET请求会被浏览器主动cache,而POST不会,除非手动设置


4.安全性:

这个也是最不好分析的,原则上post肯定要比get安全,毕竟传输参数时url不可见,但也挡不住部分人闲的没事在那抓包玩。安全性个人觉得是没多大区别的,防君子不防小人就是这个道理。对传递的参数进行加密,其实都一样。



5.后退页面的反应:
get请求页面后退时,不产生影响
post请求页面后退时,会重新提交请求

**GET在浏览器回退时是无影响的,POST会再次提交请求


HTTP状态码

1xx:表示通知信息,如请求收到了或正在处理中。
2xx:表示成功,如接受或知道了。
3xx:表示重定向,如要完成请求还需进行下一步的行动。
4xx:表示客户端的差错,如请求中有不合法的语法错误。
5xx:服务端的差错,如服务器失效无法完成请求。

下面是常见的HTTP状态码:
200 - 请求成功 (ok)
202 - 接受 (accept)
301 - 资源(网页等)被永久转移到其它URL(重定向 moved permanently)
403 - 服务器理解请求客户端的请求,但是拒绝执行此请求 (forbidden)
404 - 请求的资源(网页等)不存在(not found)
500 - 内部服务器错误 (Internal Server Error)
502 - 作为网关或者代理工作的服务器尝试执行请求时,从远程服务器接收到了一个无效的响应 (bad gateway)

发布了114 篇原创文章 · 获赞 30 · 访问量 6万+

猜你喜欢

转载自blog.csdn.net/weixin_41476978/article/details/88141441