一句话概括 GET 和 POST
GET - 从指定的资源请求数据
POST - 向指定资源提交需要被处理的数据
其他的HTTP请求方法
- Head 与Get相同,但是只返回HTTP报头,不返还文档主体
- Put 请求服务器存储一个资源(更新数据)
- Delete 删除指定的资源
- Options 返回服务器支持的HTTP方法
- Connect 把请求连接切换到透明的TCP/IP协议
Get 和 Post 的区别
GET 请求可以被缓存
GET 请求可以被保留到浏览器历史记录中
GET 请求有长度限制
GET 请求具有可见性(相对不安全)
GET 请求只允许ASCII字符
POST 不可缓存
POST 不可保留记录不可添加收藏
POST 无长度限制
POST 相对安全
POST 对请求数据无限制,允许二进制数据
Session 和 Cookie
- Session存在服务端,cookie存在客户端浏览器中
- Session默认存储在服务端的一个文件中(其实也可以通过方法,存储在数据库和内存中)
- session 的运行依赖 session id,而 session id 是存在 cookie 中的,也就是说,如果浏览器禁用了 cookie ,同时 session 也会失效。
- 但是当我们把浏览器的cookie禁止后,web服务器会采用URL重写的方式传递Sessionid,我们就可以在地址栏看到 sessionid=KWJHUG6JJM65HS2K6之类的字符串。
- SessionID 是Cookie和Session标识
MYSQL数据库引擎
Innodb引擎
提供对事务的支持,提供行级锁和外键约束。
目的处理大数据容量的数据库系统
- 该引擎是不支持全文搜索的。
- 同时,启动也比较的慢(启动时在内存中建立缓存池,用于缓存数据的索引)
- 它是不会保存表的行数的。当进行Select count(*) from table指令的时候,需要进行扫描全表。所以当需要使用数据库的事务时,该引擎就是首选。由于锁的粒度小,写操作是不会锁定全表的。所以在并发度较高的场景下使用会提升效率的。
MyIASM引擎
Mysql 的默认引擎。不支持索引。不支持行级锁和外键
- 当执行Insert插入和Update更新语句时,即执行写操作的时候需要锁定这个表。(效率低)
- MyIASM引擎是保存了表的行数,于是当进行Select count(*) from table语句时,可以直接的读取已经保存的值而不需要进行扫描全表。所以,如果表的读操作远远多于写操作时,并且不需要事务的支持的。可以将MyIASM作为数据库引擎的首先。
事务的作用
事务的ACID的特性
原子性:记录之前的版本,允许回滚
一致性:事务开始和结束之间的中间状态不会被其他事务看到
隔离性:适当的破坏一致性来提升性能与并行度 。
持久性:每一次的事务提交后就会保证不会丢失