HTTP(超文本传输协议)⭐⭐⭐⭐⭐
默认端口:80
HTTP(超文本传输协议):数据请求与响应
请求request:访问网站
响应response:显示网站,返回客户端想要的内容
URI和URL
URI(Uniform Resource Identifier 统一资源标识符)
URL(Uniform Resource Locator 统一资源定位符)
所有的URL都是URI,URL主要强调资源的地址,URL更注重资源的标识
HTTP请求方式⭐⭐⭐
用于指定客户端如何访问服务端(上传,下载,查看服务端信息)
常见的请求方式
说明
GET
下载(大部分请求都是GET请求)
POST
上传(登录,上传文件)
HEAD
类似于GET,仅仅输出响应的头部信息(用于查看服务信息)
curl -I www.baidu.com
浏览器调试查看
访问方式
curl -v www.baidu.com
wget --debug www.baidu.com
浏览器访问
浏览器调试功能:DevTools(开发者工具)
F12或Fn+F12查看网络部分
HTTP协议版本⭐⭐
http1.0
http1.1
http2.0
http3.0
特点
短(无)连接:每次请求都要建立连接
队头阻塞:下一个请求必须等待前一个响应到达之前才能发送
长连接:keepalive功能
管道传输:单个连接可以发送多个请求
多路复用
多个请求可以同时通过一个连接
头部压缩
基于udp,应用了媒体流
是否加密
默认不加密
默认不加密
默认基于https
默认基于https
基于tcp/udp
tcp
tcp
tcp
udp
HTTP协议详解⭐⭐⭐⭐⭐
HTTP请求报文⭐⭐⭐
HTTP响应报文⭐⭐⭐
http协议响应状态码⭐⭐⭐⭐⭐
状态码
详细状态码
含义
2xx
200 ok
访问正常
3xx
301 Moved Permanently
永久跳转
302 Found或Moved Temporarily
临时跳转
304 Not Modified
浏览器缓存
4xx
403 Forbidden
权限拒绝(拒绝访问)
权限问题
首页文件问题
404 Not Found
文件找不到(一般通过辅助错误日志排查)
5xx
500 Internal Error
内部错误(一般是SELinux开启,其他原因通过辅助错误日志排查)
502 Bad Gateway
网关错误,一般发生在负载中(请求发送到后面,后面无人处理)
503 service temporarily unavailable
服务临时不可用(后端负载异常或人为设置)
504 Gateway Time-out
网关超时
响应状态码:https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Status
WEB集群-Nginx⭐⭐⭐⭐⭐
WEB服务:部署并启动该服务,便可以搭建网站
中间件:夹在用户与数据之间的都可以称为中间件
WEB中间件:等同于web服务
衡量系统访问量指标
指标
说明
IP
访问网站的ip数(公网ip)
PV
页面访问量(Page view)
UV
独立访客数(Unique VIstor 特定时间段内访问网站的独立用户数量)
DAU
日活跃用户(Daily Active Users)
MAU
月活跃用户(Monthly Active Users)
查询网站排名:https://alexa.chinaz.com
常见网站服务
网站服务
说明
Nginx
大部分都是用nginx
Tengine
基于Nginx二次开发(淘宝开发)
Openresty
基于Nginx二次开发,加强了Lua功能与模块
Tomcat/Jboss/Jetty/Weblogic
运行java环境
PHP
运行php环境,需要使用nginx(LNMP)
Nginx服务部署
配置yum源
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
启动与管理
# 检查服务状态
systemctl start nginx
systemctl enable nginx
systemctl status nginx
# 检查端口
ss -lntup |grep 80
# 检查进程
ps -ef |grep nginx
Nginx目录及其文件⭐⭐⭐⭐⭐
目录结构⭐⭐⭐⭐
目录结构
说明
/etc/nginx/
nginx各种配置文件
/etc/nginx/nginx.conf
主配置文件
/etc/nginx/conf.d/
子配置文件存放目录
/etc/nginx/conf.d/default.conf
默认的子配置文件
/usr/sbin/nginx
nginx命令文件
/usr/share/nginx/html/
nginx默认的站点目录
/var/log/nginx/
nginx日志:访问日志、错误日志、跳转日志
/etc/logrotate.d/nginx
日志切割(防止文件过大)
/etc/nginx/mime.types
媒体类型文件
/etc/nginx/fastcgi_params
nginx+php
/etc/nginx/uwsgi_params
nginx+python
/usr/lib/systemd/system/nginx.service
systemctl 配置文件
/var/cache/nginx/
缓存目录
主配置文件⭐⭐⭐⭐⭐
include
文件包含或引用,引用nginx配置文件
user
指定nginx用户
error_log
错误日志
access_log
访问日志
子配置文件⭐⭐⭐⭐⭐
listen
指定监听端口
server_name
指定域名,多个域名通过空格分割
location
匹配请求中的uri(location / 标识匹配所有)
root
指定站点目录(站点目录:存放网站文件的文件系统位置)
root /app/code/www
www.baidu.com/yuan/xiaojiang.txt
/app/code/www/yuan/xiaojiang.txt
index
指定站点的首页文件(只输入域名默认展示首页)
error_log
指定错误状态码与对应的错误页面
部署小鸟飞飞网站网站⭐⭐⭐⭐⭐
网站要求
说明
站点
xiaoniao.master.cn
站点目录
/app/code/xiaoniao-master/
代码来源
xiaoniao-master.zip
小鸟飞飞源代码:https://gitee.com/ithos/xiaoniao
配置文件
# 子配置文件 /etc/nginx/conf.d/xiaoniao.master.cn.conf
server {
listen 80;
server_name xiaoniao.master.cn; root /app/code/xiaoniao-master/;
location / {
index index.html;
}
}
# 检测是否有语法错误
[root@web01 /etc/nginx/conf.d]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
# 重启系统
[root@web01 /etc/nginx/conf.d]# systemctl reload nginx
代码部署
# 创建目录
mkdir -p /app/code/xiaoniao-master/
# 上传、解压代码
unzip xiaoniao-master.zip
mv xiaoniao-master/* /app/code/xiaoniao-master/
# 配置Linux和windows的 hosts解析
#windows
C:\Windows\System32\drivers\etc\hosts windows的hosts文件需要以管理员身份进行运行
# Linux
/etc/hosts
10.0.0.7 xiaoniao.master.cn
访问