一、HTTP协议
- 用户打开网站,app,小程序.http核心2个步骤
- 第一步发送http请求报文
- 第二步网站处理
- 第三步返回http响应报文
curl -v www.baidu.cpm
wget –debug www.baidu.com
wget –debug www.baidu.com
1.1http请求
1.1.1 http请求起始行
- GET位置,请求方法
| http请求方法 | 说明 |
|---|---|
| GET | 获取内容(下载),让网站把指定文件发送给客户 |
| POST | 上传,登录,客户携带内容给服务端,服务端还需要处理. |
| HEAD | 对网站进行检查使用的,如curl -l |
curl -v -I www.baidu.com
- 资源的位置/路径
这个路径 /不是系统的目录 /是网站的根目录
后面再nginx中使用root指定,默认是/usr/share/nginx/html/
www.firy.cn/firy/firy.avi
/usr/share/nginx/html/firy/firy.avi
后面再nginx中使用root指定,默认是/usr/share/nginx/html/
www.firy.cn/firy/firy.avi
/usr/share/nginx/html/firy/firy.avi
- http版本
| HTTP版本 | 1.0 | 1.1 | 2.0 | 3.0 |
|---|---|---|---|---|
| 说明 | 短连接长连接 http/https | 长连接 http/https | 长连接,增加并发,性能,必须使用https | http3.0 uqic |
| 底层协议 | tcp | tcp | tcp | udp |
1.1.2http请求头信息
- key:value形式
- 键:值
- 变量:变量内容
| 常用头信息 | 说明 |
|---|---|
| Host | 域名区分不同站点 |
| UA头 | User-Agent客户端代理(浏览器) |
1.2http响应
1.2.1HTTP响应行
- 状态码
1.2.2 响应头信息
| 响应头 | 说明 |
|---|---|
| Server | 服务端wed服务器与版本号 |
| Via/Status | 一般使用CDN |
1.3http状态码
- 响应报文里面的
- 告知客户,我们要求的资源获取到/异常
- 相当于命令行中的一些错误提示或$?
| 分类 | 说明 |
|---|---|
| 2xx | 表示正常 |
| 3xx | 表示正常,跳转 |
| 4xx | 错误,客户端 |
| 5xx | 错误,服务端 |
| http状态码 | 说明 | 应用场景 |
|---|---|---|
| 200 ok | 访问资源是ok | |
| 301 Moved Permanently | 永久跳转 | 老域名—->新域名 |
| 302 Moved Temporarily或Found | 临时跳转 | 可以用于http-https |
| 304 Not Modified | 浏览器缓存 | |
| 403 Forbidden | 权限拒绝 | 看错误日志 |
| 404 | 指定的资源不存在 | 看错误日志 |
| 500 | 内部错误,网站有异常 | 看错误日志,连接数据库失败导致 |
| 502 | 错误网关,请求后到达后转发到其他地方,没有地方拒收 | 看错误日志,连接数据库失败导致 |
| 503 | 网站服务器不可用 | |
| 504 | 网关超时 |
curl -L 跟随跳转 遇到301/302状态码。获取响应中的Location部分,继续访问
浏览器访问不需要担心,浏览器自动访问
curl -Lv 域名 -o /dev/null
浏览器访问不需要担心,浏览器自动访问
curl -Lv 域名 -o /dev/null
- 状态表示


二、web服务器
2.1选型
| web服务器 | 说明 |
|---|---|
| nginx | 基本上目前企业使用最多 |
| apache(httpd) | 之前的老大哥,目前使用较少 |
| tengine | 基于nginx,二次开发,淘宝,优化,增加默认功能 |
| openresty | 基于nginx,二次开发,加入lua模块 |
| 经典搭配 | php语言:LNMP |
2.2安装配置与使用
获取nginx-yum源文件
cat > /etc/yum.repos.d/nginx.repo << ‘EOF’
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
EOF
下载
yum -y install nginx
设置启动
systemctl start nginx
systemctl enable nginx
浏览器测试
cat > /etc/yum.repos.d/nginx.repo << ‘EOF’
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
EOF
下载
yum -y install nginx
设置启动
systemctl start nginx
systemctl enable nginx
浏览器测试
2.3nginx配置文件


2.4新建nginx简单站点
- 域名:game.oldboy.cn
- 站点目录:/app/code/game/
- 代码(静态):静态
- html页面css样式js动态效果
在子目录下创建game.oldboy.cn.conf文件,添加
server {
listen 80;
# 监听的端口号 浏览器默认访问都是以80端口访问的页面
server_name game.oldboy.com;
# 自己注册的域名,也可以使用没有注册过的写入hosts本地解析
location / {
# 访问域名的后面默认都是有个/ www.baidu.com/ 路径匹配
root /code/;
# 如果有人访问的是默认的www.xbw.com/ 则让用户去/code目录下去访问
index.html;
# 默认让用户访问的是index.html页面的内容
}
}
server {
listen 80;
# 监听的端口号 浏览器默认访问都是以80端口访问的页面
server_name game.oldboy.com;
# 自己注册的域名,也可以使用没有注册过的写入hosts本地解析
location / {
# 访问域名的后面默认都是有个/ www.baidu.com/ 路径匹配
root /code/;
# 如果有人访问的是默认的www.xbw.com/ 则让用户去/code目录下去访问
index.html;
# 默认让用户访问的是index.html页面的内容
}
}
- linux测试
curl -H Host:name:game.oldboy.cn http://10.0.0.7
- windows测试
配置hosts文件
路径:C:\Windows\System32\drivers\etc/hosts
(记事本管理员身份运行)
添加
10.0.0.7 game.oldboy.cn
最后再网页输入game.oldboy.cn测试
路径:C:\Windows\System32\drivers\etc/hosts
(记事本管理员身份运行)
添加
10.0.0.7 game.oldboy.cn
最后再网页输入game.oldboy.cn测试
- 配置默认站点
server {
listen 80 default_server;
server_name localhost _ ;
default_type text/html;
charset utf8;
return 200 “error default website”;
}
listen 80 default_server;
server_name localhost _ ;
default_type text/html;
charset utf8;
return 200 “error default website”;
}