2.HTTP协议
  IS4yhiOomKTv 2023年11月02日 52 0

浏览器访问网站的过程

1.查询本地的hose文件或者dns解析IP地址
2.三次握手
3.发送http请求
4.浏览器渲染
5.四次挥手

URL和URI

URI:包含URL和URN
URN	:统一资源命名
URL :统一资源地址
<scheme>://<user>:<password>@<host>:<port>/<path>;<params>?<query>#<frag>
scheme:方案,访问服务器以获取资源时要使用哪种协议 
user:用户,某些方案访问资源时需要的用户名 
password:密码,用户对应的密码,中间用:分隔 
Host:主机,资源宿主服务器的主机名或IP地址 
port:端口,资源宿主服务器正在监听的端口号,很多方案有默认端口号 
path:路径,服务器资源的本地名,由一个/将其与前面的URL组件分隔 
params:参数,指定输入的参数,参数为名/值对,多个参数,用;分隔 
query:查询,传递参数给程序,如数据库,用?分隔,多个查询用&分隔 
frag:片段,一小片或一部分资源的名字,此组件在客户端使用,用#分隔
网站访问量:
ip:指独立IP个数
pv:访问量,页面浏览量
uv:独立访客,单个用户的访问

报文结构

请求报文:
开始行:方法+URL+版本+回车换行CRLF    请求行
首部字段行:首部字段名+:+值+CRLF
实体主体:


响应报文:
状态行:HTTP版本+状态码+短语+换行
首部字段行:首部字段名+:+值+CRLF
实体主体:

网站需要有状态
HTTP协议无状态,通过cookie和session解决

ab  -c10 -n 100 http://www.baidu.com/
测试并发10个最多一百个,压力测试

http协议常用的状态码

200: 成功,请求数据通过响应报文的entity-body部分发送;OK 
301: 请求的URL指向的资源已经被删除;但在响应报文中通过首部Location指明了资源现在所处的新位 置;Moved Permanently 
302: 响应报文Location指明资源临时新位置 Moved Temporarily
304: 客户端发出了条件式请求,但服务器上的资源未曾发生改变,则通过响应此响应状态码通知客户端; Not Modified 
307: 浏览器内部重定向 
401: 需要输入账号和密码认证方能访问资源;Unauthorized 
403: 请求被禁止;Forbidden,一般是因为权限错误或主页文件不存在 
404: 服务器无法找到客户端请求的资源;Not Found 
413: 上传的资源超过了最大限制值 
499: 客户端主动断开连接.然而在实际业务开发中,当出现 HTTP 499 状态码时,大部分都是由于服务端 请求时间过长,导致客户端等的“不耐烦”了,因此断开了连接.比如:慢SQL问题,499是客户端读超时关闭 连接造成的,推荐从超时时间或者优化响应速度入手,web服务器发现客户端主动关闭连接后,记录到access 日志中的.可能是客户端接收响应超时了,可以先在客户端统计下是不是这个原因,再调查为什么会导致超时 
500: 服务器内部错误;Internal Server Error,比如:cgi程序没有执行权限,或连接数据库失 败,rewrite死循环 
502: Bad Gateway,代理服务器从后端服务器收到了一条错误响应,如无法连接到网关;Bad Gateway, 比如:后端服务端口没有打开,或后端服务不可用,iptable -j REJECT 
503: 服务不可用,临时服务器维护或过载,服务器无法处理请求,比如:超过连接数和连接频率 
504: Gateway Timeout,网关超时,或者后端服务器无回应报文,比如:服务端口虽然打开,但服务返回结果 时间过长,iptable -j DROP

WEB服务

apache的三种共作模型:
prefork模型:一对一进程,一个主进程,有多少服务就开启多少子进程
worker模型:开启一个主进程,再开启若干个子进程,子进程开启若干线程,由线程响应服务
event模型:2.4版本新增模型,一个主进程,开了若干个子进程,子进程开启线程和监听线程,由监听线程分配服务响应

Nginx高性能web服务端
功能:做web网站和反向代理
I/O模型
同步:请求者主动询问事情进展
异步:被调用者主动汇报自己的工作状态
阻塞:若未完成,则一直处于阻塞状态
非阻塞:未完成,调用者可以去做别的事情,不用被挂起

nginx模块

核心模块
标准HTTP模块
可选HTTP模块
邮件模块
stream模块
第三方模块
平滑升级四个阶段:
·只有旧版nginx的master和worker进程 
·旧版和新版nginx的master和worker进程并存,由旧版nginx接收处理用户的新请求(注意:做快照方 便测试回滚) 
·旧版和新版nginx的master和worker进程并存,由新版nginx接收处理用户的新请求 
·只有新版nginx的master和worker进程
【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  jnZtF7Co41Wg   2023年12月11日   29   0   0 nginx客户端服务端
  jnZtF7Co41Wg   2023年12月09日   27   0   0 客户端服务端数据
  stLBpDewCLT1   2023年12月08日   28   0   0 nginx
  Yoru5qB4TSKM   2023年12月10日   39   0   0 服务器重启IP
  jnZtF7Co41Wg   2023年12月10日   22   0   0 nginx客户端服务端NFS
  aYmIB3fiUdn9   2023年12月08日   50   0   0 客户端IPNATlvs