HTTP1.0 非持久链接:短链接
HTTP1.1 默认长链接
HTTPS=SSL+HTTP
请求
请求行:get/post+协议+地址
请求头:IP+user_agent
请求正文
响应
Javascript运行在客户端的脚本语言
Cookie由服务器发送给客户端的一段字节,浏览器会保存Cookie,与其进行验证
浏览器关闭cookie最多保存一周
URL重定向
Servlet:单实例多线程,首次请求时才会被启动
Servletcontext:全局共享
Filter:登录模块 所有请求都限定为UTF-8,容器装载时启动
Listener:有多少session就有多少人访问,可以使用Listener进行监听session判断session存在数
地址重写:当cookie被禁止了,可以使用地址重写(在url后加上sessionid)和隐藏域(隐藏在表单中)
Session:浏览器关闭了,seesion不一定关闭,与tomcat的设置有关
ServerSocket绑定本地端口
Socket通过Ip网络传输
多线程
1个进程=多个线程
并行:多个cpu并行执行
并发:一个cpu将事情分几步执行
Join用来指定当前主线程等待其他线程执行的时间,再执行主线程
数据库建立问题
1.数据库表中主键最好设置为无意义的字段
2.外键最好不要设置,避免删除表的复杂性
3.建立索引(数据库中数据量很大时)
4.表是一对一,还是一对多关系,当一对多时必须建立关系表(数据库ER图)
5.数据量大,内容复杂需要表的拆分(表垂直拆分;水平拆分:拆分后的各表结构一样,比如评论表、数据量特别大)
Hash算法、主从模型、主主模型
JavaWeb问题
1.物理删、逻辑删
2.分页:单页多少条,总数多少条(页数即可知),当前多少页
3.订单号唯一:唯一码(UUID或数据库自增ID);
4.减库存必须唯一:一般认为下单的时候减库存;当人数很多时如何进行减库存:数据库加锁(效率较低)或者使用redies数据库作为缓存,进行队列的先进先出进行减库存操作,防止大量的使用数据库导致数据库奔溃的问题。
5.Update是全局可见的,锁库保证select语句查询的是Update更新后的数据
6.大小写不敏感:查询数据库的时候直接使用小写字段进行sql语句查询
7.登录模块——如何判断用户是否登录—— 集群模式下:将登录信息放在redies分布式服务器中,提供一个唯一的key放在session中;单机模式下:使用session进行验证。
8.SSO:单点登录