HTTP

HTTP请求GET和POST的区别

1

GET提交:请求的数据会附在URL之后(就是把数据放置在HTTP协议头<request-line>中)

POST提交:把提交的数据放置在是HTTP包的包体<request-body>中

所以,GET提交的数据会在地址栏中显示出来,而POST提交,地址栏不会改变

2、传输数据的大小:
理论上URL和http对于大小没有限制,但是在实际环境中:

GET:特定浏览器和服务器对URL长度有限制

POST:由于不是通过URL传值,理论上数据不受限

3、在传递敏感信息时,POST的安全性要比GET的安全性高,浅层面上可以这样说,对于get方法,请求的参数我们可以直接在URL中看到,即在地址栏中看到。post方法的请求参数在消息体中,无法直接肉眼看见。但是如果对消息抓包的话,还是可以看见post中的请求参数的。安全性概念有很多方面,就看是怎么看了

4、GET 仅用来获取查看信息,不能改变服务器信息。POST 用来改变服务器信息

5、使用GET方法时,浏览器可能会缓存你的地址等信息,还会留下历史记录,而对于POST方法呢,则不会进行缓存

HTTP状态码

1xx:指示信息–表示请求已接收,继续处理。

2xx:成功–表示请求已被成功接收、理解、接受。

3xx:重定向–要完成请求必须进行更进一步的操作。

4xx:客户端错误–请求有语法错误或请求无法实现。

5xx:服务器端错误–服务器未能实现合法的请求。

常见状态代码:

200 OK:客户端请求成功。

400 Bad Request:客户端请求有语法错误,不能被服务器所理解。

401 Unauthorized:请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用。

403 Forbidden:服务器收到请求,但是拒绝提供服务。

404 Not Found:请求资源不存在,举个例子:输入了错误的URL。

500 Internal Server Error:服务器发生不可预期的错误。

503 Server Unavailable:服务器当前不能处理客户端的请求,一段时间后可能恢复正常,举个例子:HTTP/1.1 200 OK(CRLF)。

常见HTTP方法