知识小结(浮点数问题)

        当浮点数进行计算的时候,有一些数是没有以准确的精度来存储的,因为在计算机中,这些数进行计算都是根据二进制码进行的,把一个十进制的数转换为二进制,计算机所能存储的位数有上限,这就会导致最后的出来的数不精确,如果解决这个问题呢,我们可以将小数部分乘以10或者100进行整数的计算,最后的结果再除以10或者100,逻辑部分就不介绍了,参考链接:http://blog.csdn.net/iloli/article/details/8447571

        在Web中,get与post两种向服务器传递数据的方式,有什么区别?(以下摘自知乎)

GET和POST长度的限制问题

GET

1.GET是通过URL提交数据,因此GET可提交的数据量就跟URL所能达到的最大长度有直接关系。

2.实际上HTTP协议对URL长度是没有限制的;限制URL长度大多数是浏览器或者服务器的配置参数

POST

1.同样的,HTTP协议没有对POST进行任何限制,一般是受服务器配置限制或者内存大小。

2.PHP下可以修改php.conf的postmaxsize来设置POST的大小。

请求header的content-length问题

如果有人恶意伪造content-length很大的包头,但实际上发送content-length很小的请求,这样服务器会一直干等,直到超时。当然服务器是可以通过设置来避免该问题的

GET和POST的安全性

1.GET是通过URL方式请求,可以直接看到,明文传输。

2.POST是通过请求header请求,可以开发者工具或者抓包可以看到,同样也是明文的。

3.GET请求会保存在浏览器历史纪录中,还可能会保存在Web的日志中。

GET和POST对服务器的状态

根据http的设计,大家在看到get的时候,都期望这个请求对服务器没有修改,看到post的时候,都认为这对服务器产生了修改。

GET幂等,POST不幂等

幂等是指同一个请求方法执行多次和仅执行一次的效果完全相同。

1.按照RFC规范,PUT,DELETE和安全方法都是幂等的。虽说是规范,但服务端实现是否幂等是无法确保的。

2.引入幂等主要是为了处理同一个请求重复发送的情况,比如在请求响应前失去连接,如果方法是幂等的,就可以放心地重发一次请求。这也是浏览器在后退/刷新时遇到POST会给用户提示的原因:POST语义不是幂等的,重复请求可能会带来意想不到的后果。

3.比如在微博这个场景里,GET的语义会被用在「看看我的Timeline上最新的20条微博」这样的场景,而POST的语义会被用在「发微博、评论、点赞」这样的场景中。

posted @ 2018-03-06 09:00  PottyHarry  阅读(205)  评论(0编辑  收藏  举报