HTTP汇总
简单请求和非简单请求
get和post的区别
GET和POST本质上就是TCP链接,并无差别。但是由于HTTP的规定和浏览器/服务器的限制,导致他们在应用过程中体现出一些不同。
get参数在url上,参数长度有限制,隐私性和安全性差一点,post在request的body中。
get在刷新浏览器或回退时没有影响(url没变),post回退时会重新提交数据请求,因此get请求效率更高。
get可被缓存,post不会被缓存。
转发 和 重定向的区别
转发是服务器行为,重定向是客户端行为。
转发:客户浏览器发送HTTP请求,服务器接收,将转发跳转到的那个网页资源返回给客户,但是浏览器地址不变。在客户浏览器里只会显示第一次进入的那个网址或者路径,客户看不到这个过程,只是得到了想要的目标资源。转发行为浏览器只做了一次请求。
重定向:客户浏览器发送HTTP请求,web服务器接受请求后发送302状态码以及新的位置给客户浏览器,客户浏览器发现是302响应,则自动再发送一个新的HTTP请求,请求指向新的地址,客户可以看到地址的变化。重定向行为浏览器做了至少两次请求。
301永久重定向和302临时重定向区别
301:浏览器会去做一些优化操作。比如更新书签的地址,更新历史记录,下次访问就直接访问新的地址了。爬虫也会去更新自己的数据库。
状态码
2、1XX: