20.tornado项目结束(简单拓展一些技术栈)

Posted 孤寒者

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了20.tornado项目结束(简单拓展一些技术栈)相关的知识,希望对你有一定的参考价值。

本tornado项目从最开始的实现hello world到最后完整做成了一个不是很美观的但是!各个功能完善的一个仿Instagram的网站项目。
相信大家如果认认真真跟着做下来,会学到很多!
关于本项目也没什么需要多说的了,tornado已经早几年就几乎退出了历史的舞台,最开始大家用tornado是看重了其高性能,但go语言的流行,使tornado这个优势已经不够看的了!(当然这不是框架本身差,而是语言速度本身慢,我相信用同样的设计原理,用go语言实现tornado肯定也不会差)
所以本文就简单聊几个问题点,大家也会常遇到的:

tornado项目结束

1.cookie和session的区别?

  • cookie的根本作用就是在客户端存储用户访问网站的一些信息 ,Session的根本作用就是在服务端存储用户和服务器会话的一些信息

  • cookie 缺陷:增加了流量、安全性等问题。且HTTP请求中的Cookie是明文传递的,大小限制在4KB左右。

  • cookie 是保存在客户端,session 的是保存在服务端

2.get和post的区别?

POST和GET都是向服务器提交数据,并且都会从服务器获取数据。

区别:

  1. 传送方式:get通过地址栏(URL)传输,post通过报文(放在Request body中)传输;

  2. 传送长度:get参数有长度限制(受限于url长度),而post无限制;

  3. GET和POST还有一个重大区别,简单的说:GET产生一个TCP数据包;POST产生两个TCP数据包。

长地说:

  • 对于GET方式的请求,浏览器会把http header和data一并发送出去,服务器响应200(返回数据);

  • 而对于POST,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok (返回数据)。

  • 也就是说,GET只需要汽车跑一趟就把货送到了,而POST得跑两趟,第一趟,先去和服务器打个招呼“嗨,我等下要送一批货来,你们打开门来迎接我”,然后再回头把货送过去。

  • 因为POST需要两步,时间上消耗的多一点,看起来GET比POST更有效。因此Yahoo团队有推荐用GET替换POST来优化网络性能,但这是一个坑!跳入需谨慎,为啥呢?

  1. GET和POST都有自己的语义,不能随便混用;

  2. 据研究,在网络环境好的情况下,发一次包的时间和发两次包的时间差别基本可以无视;而在网络环境差的情况下,两次包的TCP在验证数据包完整性上,有非常大的优点;

  3. 并不是所有浏览器都会在POST中发送两次包,Firefox就只发送一次。

建议:

  1. get方式的安全性较post方式要差些,包含机密信息的话,建议用post数据提交方式;

  2. 在做数据查询时,建议用get方式;而在做数据添加、修改或删除时,建议用post方式;

案例:一般情况下,登录的时候都是用的POST传输,因为涉及到敏感信息如密码传输;而页面查询的时候,如文章id查询文章,用get地址栏的链接为:article.php?id=11,用post查询地址栏链接为:article.php,不会将传输的数据展现出来。

拓展资料:

  1. GET在浏览器回退时是无害的,而POST会在此提交请求。
    讲解:比如我们在浏览器通过GET访问一个页面时,我们可以返回上一个页面;而如果是通过POST访问的话,返回上一个页面的时候会再发送一次请求,之前的数据就不存在了。

  2. GET产生的URL地址可以被Bookmark(简单理解:可以被他人劫走),而POST不可以。

  3. GET请求会被浏览器主动cache,而POST不会,除非手动设置。

  4. GET请求只能进行url编码,而POST支持多种编码方式。

  5. GET请求参数会被完整保留在浏览器历史记录中,而POST中的参数不会被保留。

  6. 对参数的数据类型,GET只接受ASCII字符,而POST没有限制。

3.nginx实现负载均衡至少需要几台服务器

  1. nginx做反向代理几台服务器都可以用,一台也可以,具体看你预计的业务量有多少,一台的话,就是将访问本机80/443端口的请求转发给本机8080端口,多台同理。

  2. 理论上很少直接用tomcat对外提供服务的,因为可拓展性太差。比如你单台tomcat负载太大了,就没法直接扩展。而使用nginx的话,后端的tomcat可以很方便的做横向扩展。

  3. tomcat只适用于少量并发的环境,并且处理静态文件的能力一般。nginx可承载较大的并发量。但具体多少并发才能看出来差距就没有实测过了。

  4. 个人理解一台高配性能的服务器应该是高于两台中配的,因为单机中减去了网络传输的消耗,稳定性单机就不如两台了,因为两台可以做高可用。

一般需要三台服务器,两台nginx做前端,一台后端数据库。

4.nginx的作用常用的命令?

  • nginx -s reload 重新加载配置

  • nginx -s reopen 重启

  • nginx -s stop 停止

  • 查看 nginx 版本 nginx -v 。

  • 检查配置文件是否正确 nginx -t 。

  • 显示帮助信息 nginx -h 。

nginx原理(这位大佬写的很深入):

https://blog.csdn.net/a303549861/article/details/88672901

以上是关于20.tornado项目结束(简单拓展一些技术栈)的主要内容,如果未能解决你的问题,请参考以下文章

5 个可以拓展全栈技能的开源项目

史上最全详解微服务技术栈

全程手把手带你运用Java Shiro技术栈基于最流行RBAC拓展模型实战分组织机构管理系统

福利贴 | Weex:JS & Web能力拓展万物互联的探索

Webpack + React全栈工程架构项目

机器学习的技术栈及应用实例脑洞