HTTP是什么?
HTTP是超文本传输协议(HTTP 是在计算机世界的协议。它使计算机能够理解的语言确立了一种计算机之间交流通信的规范(两个以上的参与者),以及相关的各种控制和错误处理方式
(行为约定和规范)。)
HTTP常见状态码
2XX 成功
200 | ok | 请求成功 |
---|---|---|
204 | no content | 请求成功,但是没有结果返回 |
206 | partial content | 客户端请求一部分资源,服务端成功响应,返回一范围资源 |
3XX 重定向
301 | move permanently | 永久性重定向 |
---|---|---|
302 | found | 临时性重定向 |
303 | see other | 示由于请求对应的资源存在着另一个 URI,应使用 GET方法定向获取请求的资源 |
304 | not modified | 表示在客户端采用带条件的访问某资源时,服务端找到了资源,但是这个请求的条件不符合。跟重定向无关 |
307 | temporary redirect | 跟302一个意思 |
4XX 客户端错误
400 | bad request | 请求报文存在语法错误 |
---|---|---|
401 | unauthorized | 需要认证(第一次返回)或者认证失败(第二次返回) |
403 | forbidden | 请求被服务器拒绝了 |
404 | not found | 服务器上无法找到请求的资源 |
5XX 服务器错误
500 | internal server error | 服务端执行请求时发生了错误 |
---|---|---|
503 | service unavailable | 服务器正在超负载或者停机维护,无法处理请求 |
GET和POST的区别:
1 GET请求:用于请求数据
,无副作用的,是幂等的,且可缓存,请求的数据会附加在URL之后,以?分割URL和传输数据,多个参数用&连接。URL的编码格式采用的是ASCII编码,而不是uniclde,即是说所有的非ASCII字符都要编码之后再传输。
2 GET提交有数据大小的限制
,一般是不超过1024个字节,而这种说法也不完全准确,HTTP协议并没有设定URL字节长度的上限,而是浏览器做了些处理,所以长度依据浏览器的不同有所不同;POST请求在HTTP协议中也没有做说明,一般来说是没有设置限制的,但是实际上浏览器也有默认值。总体来说,少量的数据使用GET,大量的数据使用POST
。
3 POST请求:用于提交数据
,有副作用,非幂等,不可缓存,POST请求会把请求的数据放置在HTTP请求包的包体中。上面的item=bandsaw就是实际的传输数据。
因此,GET请求的数据会暴露在地址栏中,所以安全性比较低
,比如密码是不能暴露的,就不能使用GET请求 , 而POST请求中,请求参数信息是放在请求头的,所以安全性较高,可以使用。在实际中,涉及到登录操作的时候,尽量使用HTTPS请求
,安全性更好。而POST请求则不会。