一、HTTP协议
1、telnet
- 问题如图:
解决:控制面板 --> 卸载程序 ---> 打开或关闭Windows功能 --> 勾上“telnet客户端” - cmd:telnet localhost 8080(可以通过这个工具连接互联网上的任何一台机器)--> 按ctrl + ] 才能看到输入的字母(如果输错了就要重新来过)
- GET /a/1.html HTTP/1.1,回车,Host:,两次回车。
- 就得到了访问的资源了
2、HTTP协议简介
- 它是tcp/ip协议的一个应用层协议
3、http1.0和1.1的区别
- GET /aa/news/1.html HTTP/1.0,当获取到资源的时候立马断开(在一个连接上,只能获取一个资源)。如图:
- GET /aa/news/1.html HTTP/1.1,得到资源之后可以继续请求(在一个连接上,可以获得多个资源)。如图:
- 例子:一个web页面中,使用img标签引用了三幅(不同的)图片,当客户端访问服务器中的这个web页面时,客户端总共会访问4次服务器,即向服务器发送了4次HTTP请求。
11 <img src="1.jpg"> <img src="2.jpg"> <img src="3.jpg">
- 做web开发的时候,要提高服务器的性能,就要减少http请求数。这里就可以把3个图片做成一幅图片,这样就把请求数减少成了2个;多个css或者JavaScript也要合成一个。
4、http请求
- 包括:一个请求头、若干消息头、以及实体内容
- 请求行:
- 请求方式:常用:POST(做一个表单),GET(默认)。表单:
显示如图:<form action="/a/2.html" method="post"> 用户名:<input type="text" name="username"> <input type="submit" value="提交"> </form>
点了提交之后,方法变为POST,如图:
- 如请求方式为GET方式,则可以在请求的URL地址后以?的形式带上交给服务器的数据(post方式就不能在url后面带参数了吗?:在地址栏传参数就是get方式了,随便传什么参数都可以。),多个数据之间以&进行分隔,例如:
GET /mail/1.html?name=abc&password=xyz HTTP/1.1 - GET方式的特点:在URL地址后附带的参数是有限制的,其数据容量通常不能超过1K。
- 如请求方式为POST方式,则可以在请求的实体内容中向服务器发送数据,Post方式的特点:传送的数据量无限制。(应用:提交密码)
- 小细节:如果是get方式,一定不能是中文的。如果是中文,要编码。
- 请求头(消息头):
- accept:浏览器通过这个头告诉服务器,它所支持的数据类型;
- Accept-Charset: 浏览器通过这个头告诉服务器,它支持哪种字符集;
- Accept-Encoding:浏览器通过这个头告诉服务器,支持的压缩格式;
- Accept-Language:浏览器通过这个头告诉服务器,它的语言环境;
- Host:浏览器通过这个头告诉服务器,想访问哪台主机;
- If-Modified-Since: 浏览器通过这个头告诉服务器,缓存数据的时间;
- Referer:浏览器通过这个头告诉服务器,客户机是哪个页面来的 防盗链;
- Connection:浏览器通过这个头告诉服务器,请求完后是断开链接还是何持链接。
5、http响应
- 包括:一个状态行、若干消息头、实体内容。
- 状态码:
- 100~199(表示成功接收请求,要求客户端继续提交下一次请求才能完成整个处理过程。用得不多);
- 200~299(表示成功接收请求并已完成整个处理过程,常用200);
- 300~399(为完成请求,客户需进一步细化请求。例如:请求的资源已经移动一个新地址,常用302(你去找别人,就是请求重定向)、307(和302差不多)、304(你别找我了,拿你的缓存);
- 400~499(客户端的请求有错误,常用404(自己的问题,敲错了,没有这个资源));
- 500~599(服务器端出现问题,常用500)。
二、SQL入门
1、安装MySql
- sql:structured query language(结构化查询语言)
- cmd:mysql -u用户名 -p密码(一般mysql -u用户名 -p,回车之后再输密码,密码就是*了)
- 安装MySql,用户名和密码:root,端口号3306
- 验证mysql是否安装成功:
- 所谓安装数据库服务器,只是在机器上装了一个数据库管理软件,要往这个管理软件存数据,就要在这个管理软件下面新建库来管理数据。每个项目建一个库。
2、创建数据库
- CREATE DATABASE [IF NOT EXISTS] db_name [create_specification[, create_specification] ...]
- create_specification:
- [DEFAULT] CHARACTER SET charset_name
- [DEFAULT] COLLATE collation_name
- 创建一个名称为mydb1的数据库:
create database mydb1; - 查看所有数据库:
show databases; - 创建一个使用utf-8字符集的mydb2数据库:
create database mydb2 character set utf8; (注意:utf和8之间没有 - 哦) - 创建一个使用utf-8字符集,并带校对规则的mydb3数据库。
create database mydb3 character set utf8 collate utf8_general_ci; (utf8_general_ci在MySQL 5.1参考手册中查到的10.字符集支持-->10.1常规字符集和校对) - 显示库的创建信息
show create database mydb3;