前置
网站服务通讯过程原理
第一个历程:用户浏览器访问网站域名
第二个历程:需要对访问域名进行解析
第三个历程:需要建立三次握手过程
第四个历程:需要发送HTTP协议对应请求数据包HTTPs(安全协议)
第五个历程:需求发送HTTP协议对应响应数据包HTTPs(安全协议)
#第四第五过程会持续一段时间
第六个历程:需要完成四次挥手过程
HTTP请求数据包结构:
#请求4个部分
1)请求行
GET / HTTP/1.1
a b c
a:请求数据方法
有GET (获取下载)请求指定的页面信息,并返回实体主体。(从指定网站服务器获取指定数据信息)POST(提交上传)将本地的信 息提交到网站服务中进行存储
b:请求数据信息
有具体请求信息/oldboy/oldboy01/oldboy . jpg没有具体请求信息/(默认首页信息做响应)
c:请求协议信息
HTTP 1.0属于TCP短链接方式实现通讯一次连接--一次请求
HTTP 1.1属于TCP长链接方式实现通讯一次链接--多次请求
HTTP 2.0属于TCP长连接(复用)对应并发访问处理能力更强
https://www.cnblogs.com/ heluan/p/8620312.html
2)请求头
User-Agent: curl/7.29.0
告知服务端访问网站客户端程序是什么谷歌火狐IE -- PC
IPhone安卓--移动端
Host: www.baidu.com
访问网站地址信息
ww . jd.com--- /www/前端代码
用户访问
web服务器
shouji.jd.com --- / shouji/前端代码channel.jd.com --- /channel/前端代码
3)空行
4)请求主体I
GET:没有请求主体
POST:可以看到请求主体信息HTTP响应数据包结构:
#HTTP响应数据包结构:4个部分:
1)起始行
HTTP/1.1 200 OK
a b c
bc ---响应的状态码和状态码描述信息20x ---正确响应状态码信息 200
30x ---对访问信息做了跳转处理
301:永久跳转
wwW.360buy.com浏览器
--->请求信息 -->web服务端
<--响应信息(301) <--web服务端
PS:请浏览器保存记录跳转后域名地址
--->请求信息 -->web服务端
<--响应信息(200) <--web服务端
www.360buy.com 浏览器
302:临时跳转
www.360buy.com 浏览器
--->请求信息 -->web服务端
<--响应信息(302) <- -web服务端
-->请求信息 -->web服务端
<--响应信息(200) <---web服务端
40x ---用户端访问出现错误异常导致
404:用户访问资源信息不存在
403:用户访问资源被限制了
401:用户身份验证失败
50x ---服务端出现异常情况
500 - lnternal Server Error:内部服务器错误,服务器遇到了意料不到的情况,不能完成 客户的请求。这是一个较为笼统的报错,一般为服务器的设 置或内部程序问题导致。例如:SELinux开启,而又没有为 HTTP设置规则许可,客户端访问就是500.
502 - Bad Gateway (重点):坏的网关,一般是代理服务器请求后端服务时,后端服务不可用 或没有完成响应网关服务器。这通常为反向代理服务器下面的节 点出问题所致。反向代理服务器无法与后面的web服务节点服务 器建立联系.
503 - Service Unavailable:服务当前不可用,可能是服务器超载或停机维护导致的,或者 是反向代理服务器后面没有可以提供服务的节点.
504 - Gateway Timeout:网关超时,一般是网关代理服务器请求后端服务时,后端服务没有 在特定的时间内完成处理请求。多数是服务器过载导致没有在指定 的时间内返回数据给前端代理服务器。
2)响应头
Server: Tengine:---告知客户端服务端使用web程序
Content-Type: text/html:---处理用户访问信息类型
Content-Length: 154---响应数据信息字节大小
Connection: keep-alive ---使用TCP长链接方式进行通讯Date: Tue,15 Dec 2020 01;46:59 GMT
Location: https://www.oldboyedu.com/---指定跳转后的地址信息
3)空行
4)响应主体
具体请求内容信息响应
#静态资源信息:
1.根据请求uri信息识别数据扩展名,确认是否是静态信息
url: Uniform Resource Locator统一资源定位器
uri: Uniform Resource Identifier
https:/litem.jd.com/19210609679.html
a b c
a:访问网站协议信息
b:访问网站url地址信息
c:访问网站uri地址信息
xxx.html/js/css/png/jpg/mp3/mp4/ avi .....
mime.types(nginx) ---媒体资源类型文件(文件中会记录静态资源类型)
2.确认网站架构中是否有数据库服务器支持: 不需要有数据库服务 静态资源网站主要用于用户端访问查看
没有数据库服务支持,增加前端开发人员压力
3.数据请求访问效率效率最高
#动态资源信息:
1.根据请求uri信息识别数据扩展名,确认是否是动态信息
xxx.php/jsp/asp ....
2.确认网站架构中是否有数据库服务器支持:必须有数据库服务动态资源网站可以实现用户端交互过程,减轻前端开发人员压力
3.数据请求访问效率效率较低
网站服务访问度量方式
#IP:统计分析客户端用户IP数量,并且根据用户IP信息的不同,分析访问网站客户端区域情况
awk '{print $1} '/var/log/nginx/access.log|sort |uniq|wc -l
参考数值:不够精确
100人局域网--NAT--访问京东--- IP 一个
#PV:统计分析客户端访问页面数量
参考数值:访问流程过于复杂时,PV量自然会增加
#UV:统计网站独立访客数量
cookie:服务端分配给每个客户端用户标识信息信息保存在客户端浏览器中
登录过程---张三用户访问(标识信息)(连接持续建立)
session:服务端记录用户访问信息或者用户访问行为信息保存在服务端本地
登录过程---认证用户信息记录某个cookie用户信息已经登录过了
如:看视频30分钟,会记录时常
http://alexa.chinaz.com/alexa_more.aspx
#并发量:在某一个时刻,同时有多少客户端在访问web服务端
#服务器数量:web服务集群中服务器数量+其他架构服务器I
通过压力测试,检测服务器并发访问承载量
网站服务概念作用介绍
#静态服务程序:处理用户访问静态资源
nginx:***
1.服务工作原理:epoll检索信息功能性能更高开发难度高
2.服务功能多样:web服务器负载均衡功能数据缓存功能
3.服务使用场景:国内大部分公司都在使用nginx搭建web服务
apache:
1.服务工作原理: select遍历查询过程性能较低开发难度低
#去宿舍找人:一个一个门去找==select ,宿舍管理员进行询问==索引信息
https ://www.cnblogs.com/aspirant/p/9166944.html*
2.服务功能单一:
3.服务使用场景:国企
#动态服务程序:处理用户访问动态资源
php:处理PHP语言编写动态资源
tomcat:处理JAVA语言编写动态资源
uwsgi:处理python语言编写动态资源代码
网站服务部署安装
配置nginx的yum源仓库
vim /etc/yum.repos.d/nginx.repo
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=0
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
1)安装方式一:yum安装
yum -y install nginx
2)安装方式二:编译安装
安装依赖
yum install -y pcre-devel openssl-devel
yum install -y gcc
yum install -y make zlib-devel gcc-c++ libtool
#pcre-devel:可以实现兼容perl语言正则表达式? ? ?
#openssl-devel:可以实现基于HTTPS协议方式进行数据传输
下载并解压nginx包
wget http://nginx.org/download/nginx-1.24.0.tar.gz
tar xf nginx-1.24.0.tar.gz -C /opt/service/
创建虚拟nginx用户
useradd -M -s /sbin/nologin nginx
配置
配置:
./configure --prefix=/app/nginx-1.24 --user=nginx --group=nginx --with-http_ssl_module --with-http_stub_status_module
#参数介绍:
--prefix=PATH set installation prefix
指定软件程序安装路径/ app/nginx-1.18
--sbin-path=PATH set nginx binary pathname
软件有关命令文件保存指定路径/usr/bin/
--modules-path=PATH set modules path
软件所有生成模块信息保存路径
--conf-path=PATH set nginx.conf pathname软件配置文件保存路径
--error-log-path=PATH set error log pathname软件生成错误日志保存路径
--pid-path=PATH set nginx.pid pathname
--lock-path=PATH set nginx.lock pathname
--user=USER set non-privileged user for worker processes
设置程序启动后worker进程管理用户
--group=GROUP set non-privileged group for worker processes
设置程序启动后worker进程管理用户组
--with-http_ssl_module 启动nginx服务HTTPs访问功能
--with-http_stub_status_module 启用nginx服务状态监控功能
编译安装
make && make install
#如果编译安装有问题就执行下面命令
make clean
启动
/app/nginx-1.24/sbin/nginx
文章评论