黑马程序员技术交流社区

标题: http 与数据库 [打印本页]

作者: z-snow    时间: 2019-6-5 17:06
标题: http 与数据库
### http协议 会话技术 数据库
#### 一、 http协议
一、请求协议:
1、请求行包含:请求方式  url地址  http版本
2、请求头:一行一个,包含很多项
host
connection
agent
accept

3、请求体:
是具体发送到服务器端的数据,跟请求头隔开一行,get请求没有请求体

二、响应协议:
1、响应状态行:版本号  状态码  状态描述文本
2、响应头:一行一个,很多项
3、响应体:服务器返回用于构建页面的HTML代码,与响应头隔开一行


http协议的应用:
1、设定返回的文档内容类型:
《1》header("content-type:text/html; charset=utf-8");
        《2》header("content-type:text/css; charset=utf-8");
        《3》header("content-type:text/javasript");
        《4》header("content-type:text/json");
        《5》header("content-type:image/png");

立即跳转:header("location:新的url地址")
定时跳转:hehader("refresh:秒数;新的url地址")
设定链接为一个下载操作:header("Content-Type:application/octet-stream")


####  二、 会话技术:
1、原理:

* 第1步,page1:用于设置一个cookie或session数据
1.1,通常需要验证某种身份才进行设置,比如用户名密码
                1.2,验证身份并设置cookie或session后,可以直接跳转到应该去的页面
- 第2步,page2:判断是否有该cookie或session并符合条件
                2.1,如果没有:跳转到page1进行身份验证
                2.2,如果有:    展示page2该展示的东西(即表示可访问)

2、 cookie技术:
- 基本操作:1、赋值:设置cookie :setcookie('cookie名',‘值’);  例setcookie('login','ok');
- 获取cookie值:$\_COOKIE['cookie名']

- 删除cookie: setcookie('cookie名',‘’);
怎样设置的cookie就怎么删除,如果包含后面的参数,必须一起写

- cookie的参数:
设置有效期:setcookie('cookie名','值',time()+秒);
设置有效范围:setcookie('cookie名',‘值’,‘有效期‘,‘路径’)
设置有效域名:setcookie('cookie名','值',有效期,路径‘有效域名’)

3、session技术:
- 1、设置session: $\_SESSION['名' ]  = 值;
- 获取session : $v = $\_SESSION[''名];
- 删除session:   
1、unset($\_SESSION['名']);   只删除一个
2、$\_SESSION = array();   删除整个session
3、session_destory()  ; 删除所有的包括session文件

cookie和session的区别:
cookie和session是一种会话技术,主要用来解决http协议无状态的,
1.存取数据的方式不同:cookie只能存字符串,session可以存任意数据类型
2、隐私策略不同:cookie存储在客服端,对客户端可见,不安全,session存放在服务器,任何隐私都能够有效的保护,比如用户名密码等最好选择session,如果用cookie就需要将cookie信息加密,提交到服务器后再解密
3、有效期不同:cookie可以在参数中设置有效期,如果设置的session的超时时间过长,服务器累计的session过多,容易导致内存溢出
4.服务器的压力不同:cookie保存在客户端,不占服务器资源,同时访问的用户过多就选择cookie,session存于服务器,如果同时访问的用户过多,会产生大量的session,耗费大量内存,所以baidu google sina 这样的网站都是选择cookie方式
5、跨域名支持不同:cookie支持跨域名访问,只需要设置其中一个参数即可,而session不支持跨域名访问,尽在其所在的域名有效
6、浏览器的支持不同:cookie是需要浏览器支持的额,如果不支持或者禁用,就会让跟踪无效,此时就需要session +url地址重写






###  MYSQL(数据库)
《1》:基本概念:
1、数据库服务器(数据库系统):是一个数据库软件安装后所具备的数据库存储和操作环境
2、数据库:一个数据库服务器中可以建立多个数据库,每个数据库通常用于一个项目或产品
3、数据表:用于存储某类数据的表格,一个数据库中可以有多个数据表,一个表由若干个列构成,创建表就是设定表有那几列(字段)
4、数据(数据行):一个数据表可以储存的具体数据,一行代表某类数据的多个数据项


《2》建库建表:
1、用命令行sql语句(基本不用)
2、用navcat工具

《3》数据的基本操作:
1、增:insert into 表名 (字段名1,字段名2....)value(值1,值2)字段名和值一一对应
注意:值中的字符串类型和时间日期类型需要加引号,自增长字段使用null,即可实现增长

2、删:delete from 表名 where 条件

3、改:uptate  表名 set 字段1 = 值1,字段2 = 值2

4、查:
1、select * from 表名  //查询所有字段
2、selete 字段1,字段2 from 表名  //查询部分字段
3、select 字段1 ,字段2  from 表名 where 条件 //带条件查询部分字段
4、select 字段1 ,字段2 from 表名//带条件查询所有字段
5、select 字段1,字段2...from 表 where 条件 order by age desc(降序),sex asc(升序) limit 0 4 (从0开始找,找4个)

6、查找出年龄最大值:select max(age ) from mytable
查找出年龄最小值:select min(name) from mytable
查找平均值:select avg(age) from mytable



where 条件常见语法:
        where  id=5
        where  name='jack'
        where  age >= 18
        where  gender = '男'
        where  birthday = '2000-1-1'
        where  age >= 18  and  gender = '男'
        where  year  % 4 = 0 && year % 100 <> 0  || year % 400 = 0
        where  age  in (18, 27, 36, 45)






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2