第五章-webserver基础知识

阻塞和非阻塞、同步和异步

  • 简单的理解,同步是自己从缓冲区中读取数据,异步是操作系统把数据送给要存入的数组中。
    在这里插入图片描述

webserver

  • 一个 Web Server 就是一个服务器软件(程序),或者是运行这个服务器软件的硬件(计算机)。其主要功能是通过HTTP协议与客户端(通常是浏览器(Browser))进行通信,来接收,存储,处理来自客户端的 HTTP 请求,并对其请求做出HTTP响应,返回给客户端其请求的内容(文件、网页等)或返回一个 Error 信息。

在这里插入图片描述

  • Tomcat
  • Nginx
  • 服务器基本框架
    在这里插入图片描述
  • 两种高效的事件处理模式
    在这里插入图片描述
  • Reactor模式
  • 只负责监听,监听到则交由工作线程去处理
    在这里插入图片描述
  • Reactor模式工作流程
    在这里插入图片描述
  • Proactor模式
  • 主线程监听事件,一次性读取完数据,封装成任务类,交给线程池的队列中,再执行任务的处理。
    在这里插入图片描述
  • Proactor模式工作流程
    在这里插入图片描述

HTTP协议

简介

  • 超文本传输协议(Hypertext Transfer Protocol,HTTP)是一个简单的请求 - 响应协议,它通常运行在TCP之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。请求和响应消息的头以 ASCII 形式给出;而消息内容则具有一个类似MIME 的格式。HTTP是万维网的数据通信的基础。
  • HTTP的发展是由蒂姆·伯纳斯-李于1989年在欧洲核子研究(CERN)所发起。HTTP的标准制定由万维网协会(World WideWeb Consortium,W3C)和互联网工程任务组(Internet EngineeringTaskForce,IETF)进行协调,最终发布了一系列的RFC,其中最著名的是1999年6月公布的 RFC2616,定义了HTTP协议中现今广泛使用的一个版本——HTTP 1.1。

工作原理

  • HTTP 协议定义 Web 客户端如何从 Web 服务器请求 Web 页面,以及服务器如何把 Web 页面传送给客 户端。HTTP协议采用了请求/响应模型。客户端向服务器发送一个请求报文,请求报文包含请求的方法、URL、协议版本、请求头部和请求数据。服务器以一个状态行作为响应,响应的内容包括协议的版本、成功或者错误代码、服务器信息、响应头部和响应数据。
    以下是 HTTP 请求/响应的步骤:
  • 客户端连接到 Web 服务器
    一个HTTP客户端,通常是浏览器,与 Web 服务器的 HTTP 端口(默认为 80 )建立一个 TCP 套接字连接。例如,http://www.baidu.com。(URL)
  • 发送 HTTP 请求
    通过 TCP 套接字,客户端向 Web 服务器发送一个文本的请求报文,一个请求报文由请求行、请求头部、空行和请求数据 4 部分组成。
  • 服务器接受请求并返回 HTTP 响应
    Web 服务器解析请求,定位请求资源。服务器将资源复本写到 TCP 套接字,由客户端读取。一个响应由状态行、响应头部、空行和响应数据 4 部分组成。
  • 释放连接 TCP 连接
    若 connection 模式为 close,则服务器主动关闭 TCP连接,客户端被动关闭连接,释放 TCP 连接;若connection 模式为 keepalive,则该连接会保持一段时间,在该时间内可以继续接收请求;
  • 客户端浏览器解析 HTML 内容
    客户端浏览器首先解析状态行,查看表明请求是否成功的状态代码。然后解析每一个响应头,响应头告知以下为若干字节的 HTML 文档和文档的字符集。客户端浏览器读取响应数据 HTML,根据HTML 的语法对其进行格式化,并在浏览器窗口中显示。

线程池

在这里插入图片描述

  • 空间换时间,浪费服务器的硬件资源,换取运行效率。
  • 池是一种资源的集合,线程池在服务器启动之前已经被完全创建并初始化,称为静态资源。
  • 当服务器处理完一个客户连接之后,可以把线程放回线程池中,资源一直在,不需要释放资源。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值