文章目录
- Web---http/Nginx
- http
- html网页文件基本格式
- 静态网页和动态网页的区别
- http协议
- http协议版本
- 请求方法
- 响应状态码
- 请求报文
- 响应报文
- Ngnix
- Apache和Nginx区别
- 应用场景
- yum安装Nginx
- 编译安装Nginx
Web—http/Nginx
http
访问网站:通过网站的IP地址访问,也可以用域名访问(因为IP地址不易记忆)
域名结构: 主机名.子域.二级域.顶级域.
(根域)
域名解析: 先使用本地的 hosts 文件,如果没有相关记录再使用 DNS 解析
DNS解析过程: 客户端 -> 本地域名服务器 -> 根域名服务器 -> 顶级域名服务器 -> 二级域名/子域名服务器 -> 根据主机名解析出IP (查询方式:递归查询、迭代查询)
网页文件 html文件(文件名后缀通常以 .html 或 .htm 结尾)
html网页文件基本格式
<html><head> #网页的标题部分
<title>.....</title>
</head><body> #网页的内容部分<p>......</p> #整行内容</br> #换行
<img src="图片路径" /> #插入图片
</body>
</html>
静态网页和动态网页的区别
静态网页:就是 标准的HTML网页,网页文件后缀通常以 .html .htm .shtml 等结尾。没有后台数据库支持,不包含任何应用程序,网页不可交互,网页URL路径中不含有 ?
动态页面:有后台数据库支持,网页可交互,也可以自动更新,网页内容会包含用 php java python 等高级编程语言编写的应用程序,网页URL路径中会含有 ? 用于传参
http协议
http协议版本
http1.0 只支持短连接(在一个TCP连接中只能完成一次http请求和响应过程)
http1.1 支持长连接(连接保持、持久连接)和管道机制,即支持在一个TCP连接中可完成多次http请求和响应,且要求按照顺序一一对应
http2.0 支持长连接和多路复用,即支持在一个TCP连接中可完成多次http请求和响应,且不用按照顺序一一对应;还支持网页头部压缩和服务端主动推送;使用二进制格式代替文本格式
http3.0 基于UDP协议实现。具有更高的传输效率
请求方法
GET 发送查询资源请求,用于查询、读取、下载资源内容
PUT 向服务器提交资源,用于修改资源内容
POST 向服务器提交资源,用于添加资源内容
DELETE 用于删除资源内容
HEAD 用于查询网页的头部信息和元数据
响应状态码
正常的响应状态码 1XX(提示信息) 2XX(正常处理) 3XX(重定向)
异常的响应状态码 4XX(客户端请求错误) 5XX(服务器请求错误)
200 一切正常
301 永久重定向
302 临时重定向
400 客户端请求的语法错误或格式不正确
401 客户端认证失败,通常是因为提供的账号密码错误
403 客户端请求被拒绝,通常是因为没有权限访问
404 客户端请求的文件不存在,通常是因为客户端请求的路径有误
500 服务器内部错误,通常是因为服务器程序错误、配置问题或资源不足导致
502 无效网关,通常是因为网关代理服务器收到后端上游服务器返回的无效响应消息导致
503 服务可不用,通常是因为临时的服务器维护或者过载,服务器当前无法处理请求导致
504 网关超时,通常是因为网关代理服务器收到后端上游服务器未在规定时间内返回响应消息导致
请求报文
请求行 包含请求方法、请求的URL路径、http协议版本
请求头 键值对类型的元数据信息
请求体 包含向服务器提交的数据
响应报文
响应行 包含http协议版本、响应状态码和描述
响应头 键值对类型的元数据信息
响应体 包含服务器返回的网页数据
Ngnix
Apache和Nginx区别
最核心的区别在于
nginx 采用的是 异步非阻塞机制,一个进程可以同时处理多个连接;
apache 采用的是 同步阻塞+多进程/多线程模型,一个进程只能同时处理一个连接
nginx 抗并发能力更高(处理 2-3 万并发连接数,最高能支持 5 万并发);
更轻量; CPU、内存资源消耗更少;
配置简洁,使用场景多,性能稳定
应用场景
- 用作web网站服务,处理静态网页请求
- 用做虚拟主机,实现在一个服务器上部署多个网站站点
- 用作反向代理、负载均衡,可作为网关代理服务器接受客户端的请求再转发给后端上游服务器处理
- 用作web缓存服务器,缓存经常被访问的静态网页资源
yum安装Nginx
配置yum源
cd /etc/yum.repos.d将所有源移入备份文件bak将nginx源移入
nginx.repo保证能ping通网络
ping www.baidu.comyum安装nginx
yum install -y nginx开启服务
systemctl start nginx查看端口
netstat -lntp | grep nginxnginx -v # 显示版本号nginx -V # 显示版本号、详细参数
编译安装Nginx
本机浏览器搜索https://nginx.org/en/download.html
此处下载了 nginx-1.26.2.tar.gz将安装nginx所需软件包传到/opt目录下
cd /opt
nginx-1.26.2.tar.gz解压
tar xf nginx-1.26.2.tar.gz使用本地yum源安装依赖包
yum install -y pcre-devel zlib-devel openssl-devel gcc gcc-c++ make创建运行用户
useradd -M -s /sbin/nologin nginx编译安装
cd /opt/nginx-1.26.2/./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module \
--with-http_ssl_modulemake -j 2
make install优化路径
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/