服务端编程(三)- 背景知识 - web服务器 HTTP服务器 application 服务器 动态网站 静态网站 域名 URL 详解

news/2024/5/9 20:42:54/文章来源:https://blog.csdn.net/weixin_43178828/article/details/104244608

文章目录

    • 前言 ´・ᴗ・`
    • 概述
    • web server
    • HTTP server
    • application server 应用服务器
    • 动态网站 静态网站
    • 总结 ´◡`

前言 ´・ᴗ・`

  • 本篇将简化的几个简单却又容易混淆的概念 网站 网页 搜索引擎 web服务器

  • 本文可以带给你…

    • 网页的概念
    • 网站的概念
    • 搜索引擎的概念
    • web服务器的概念以及组成部分
    • HTTP服务器的概念
    • 应用服务器 application server的概念
    • 上面三者的关系?web application server是什么
    • 动态网站 静态网站 动态web服务器 静态web服务器 这些概念以及相互关系

概述

web开发有很多行话(jargon),不真正理解,恐怕自学起来很难 也没法和大佬交流
这里我们先来个摘要
这里是行话合集 (glossary):https://developer.mozilla.org/en-US/docs/Glossary、

  • 网页 web page
    实际上就是一个HTML文档,它可以被各种浏览器解析 渲染 显示
  • 网站 web site
    是一系列网页的集合
  • web服务器 web server
    说白了就是一个电脑(internet就是让电脑之间互相联结,只不过在web里,有些是客户机有些是服务器)
    当然这个电脑得装载网页文件 装载网站(hosting website),这样我们通过访问服务器就可以获取到网站
  • 搜索引擎 search engine
    一种可以帮你找到其他网页的web服务,其实也是网站(网页) 比如google baidu

我们打个比方 假设服务器就是一个图书馆 我们(客户端)就是过来看书的人
图书馆有很多分区(session),比如人工智能 心理 财经等等,这些分区就是网站(website)
每个分区 我们能找到很多书 每本书就是一个网页 放在哪里了呢?我们可以通过旁边配有的电脑查询——它在12架A层,这就是URL
那旁边那个帮你查书的电脑是什么?——搜索引擎

web server

其他概念无需深究——本身很简单

1️⃣web服务器到底是干啥的
简单的web服务器(也即是静态的web服务器)就是能够响应HTTP 请求,然后从自己服务器的文件系统中找文件 然后找到了通过网络,传文件出去给客户端。文件 也称为“资源” 正如我们上一节讲的web如何工作 那种功能一样
当然 这种静态的web服务器就包含了HTTP 服务器 不包含application server 或者说没有任何web 应用

2️⃣web服务器是怎么构成的呢?

  • 硬件层面:一电脑 装着所有网站相关的资源
    • style information 文件 .css 样式
    • scripts 设计网页的动态效果 人机交互 .js 文件
    • media 图片 音频 视频
  • 软件层面:
    • 静态web 服务器:HTTP server
    • 动态web服务器:
      • HTTP server
      • 数据库管理软件(比如我专栏学习的MySQL)
      • application server (别急 本节后面慢慢讲到)

HTTP server

首先是个软件,其次,这玩意支持HTTP协议,理解URL(网址),
然后功能就是上面说的“简单的web server”:能够响应HTTP 请求,然后从自己服务器的文件系统(Files)中找文件 然后找到了通过网络,传文件出去response给客户端。
如果找不到 他就负责返回一个状态码 具体的我们上节都有详细讲过。

application server 应用服务器

这个就是个传统web 服务器的拓展(extender)
1980年的时候 web服务器只包含HTTP服务器——意味着只能发态的内容 也就一个html网页给你而已

问题是动态网站 动态内容更加满足人们需要
于是在web服务器上拓展了一下 搞了个和HTTP平行的组件 称为application server
这个时候的web服务器又被称为 web application server 就是动态的web服务器

那么application server为啥能够使得服务器动态呢?
application server 能够 通过数据库管理软件 从数据库database 获取数据,然后给客户——可以直接给(比如各种图片 视频),也可以用于渲染网页

怎么个渲染法?拿csdn举例 页面内容不同 主体框架都差不多 这就是html模板(template)
我们只需要把模板中关键地方的数据改了就行 而数据来源是数据库

这样 是不是感觉网页有种动态呢?
不再是固定死的html代码 而是可以改变的

动态网站 静态网站

到底是什么场合需要动态内容呢?

  • 需要账号密码的所有网站
    HTTP是无状态的 什么信息都记不住
  • 储存大量信息的
  • 有大量网页的
    比如CSDN 每个人都有个好几个页面 如果静态实现,加起来几千万个.html 文件了2333
    而动态实现 只需要几个html模板加上一个巨大的数据库 这样网站维护,比如进行 统一的修改更简单
  • 针对个人的信息推荐 不再是所有人都发一样的消息

而,能够支持动态内容的网站就是动态网站dynamic website,应该说现在没有什么不用动态网站了

我们先讲一下静态网站 被静态web服务器所承载(hosted)
而讲台静态web服务器 软件层面上仅仅包含HTTP server
之前 服务端编程(二)web 客户端 服务端 前端 后端 相关概念解析
就提到了web的工作方式 其实不尽然 这只是静态web服务器工作的方式而已

下面静态网站工作的示意图:
在这里插入图片描述
很简单 不是嘛?
也可以想象的出来 静态网站只有GET方法 因为没法接受客户端上传的数据,POST不可用
唯一能做的只有可怜的HTTP server response静态固定的files(static file) 也就是图中“Pre-created”的固定的文件

那么动态网站呢?动态的要在静态网站的基础上添加更多东西
上一段我们提到了“ application server能够 通过数据库管理软件 从数据库database 获取数据,然后给客户——可以直接给(比如各种图片 视频),也可以用于渲染网页”
很明显 动态网站的载体 动态web服务器包含

  • application server
  • HTTP server
  • 数据库管理软件(如MySQL)

当然了 动态加载也是需要程序控制的
这就是所谓的后端开发 服务端开发
这个概念之前说过 这里再次深化——主要针对动态网站才有服务端开发
下面讲一下执行过程 可以看做静态网站(HTTP server)上叠加了点东西
在这里插入图片描述

  • 1 客户端浏览器向服务器发送HTTP请求
  • 2 web 服务器(底层的)向web应用 也就是application server进一步请求
  • 3 application server 通过1数据库管理软件 从数据库提取需要的数据
  • 4 结合服务器原有的Files 也就主要是html模板 application server能够生成 完整的html数据(注意 仅限html)
  • 5 response回web server 并传递完整的html
  • 6 web server将完整的html页面传回浏览器 浏览器进行解析 然后找到link的相应js css
  • 7 浏览器再次分发HTTP请求给web server web server里面的 HTTP server把Files里面的.js .css 以及其他媒体文件取出 然后回应浏览器 传递这些文件
  • 8 浏览器得以继续渲染(render)网页

可见 动态web服务器当然具有HTTP server的功能——处理静态的文件 而且运行机制相同
另外 动态网站自然就会支持几乎所有的request method 比如GET POST PUT, etc.

总结 ´◡`

这一节是对前两节的重要补充
更加深入的讲解了动态网站 静态网站 以及相关的application server HTTP server
相信对后面开发铺平了思维障碍

下一站我们将更加的深入了解 request 和 response的具体内容 深化之前所学的知识:
传送:服务端编程(四)request response 深入介绍

另外 服务端编程专栏 正在持续更新 敬请关注 感谢对阮菜鸡的支持:) 我会尽力用更优质的内容帮助大家学习的

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_858673.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

服务端编程(九)- Django - 创建网站的基本骨架 创建你的主页

文章目录 前言 ・ᴗ・url参数制定url规则制定url规则什么时候需要获取url?为什么我们操作catalog的url 而不是根目录的url?服务器如何响应——view.py模板的制作render函数的运用彩蛋总结 ◡ 前言 ・ᴗ・ 本节…

服务端编程(十)- Django -创建网站页面

文章目录 前言 ・ᴗ・ListviewListView 的细节修改编辑每本书的详情页detailView分页的编辑结语( ̄︶ ̄)↗ 前言 ・ᴗ・ 上一节我们建立了主页 这里我们来创建一些别的网页 比如关于books…

网站优化问题:雅虎网站优化35条

1. Make fewer HTTP requests 尽可能少的http请求。。我们有141个请求(其中15个JS请求,3个CSS请求,47个CSS background images请求),多的可怕。思考了下,为什么把这个三种请求过多列为对页面加载的重要不利…

用phpstudy正确配置阿里服务器 网站就是不能浏览原因

用phpstudy 配置PHPMYSQL阿里云服务器, 所有配置都正确,服务器本地上也正常浏览, 但是用绑定服务器的域名打开浏览就是不行。 原因是阿里云服务器上的安全设置问题 阿里云服务器默认不能访问的,需要在阿里云服务器上增加安全规…

2017 年最受欢迎的 10个编程挑战网站

热文导读 | 点击标题阅读 如何看待中通讯42岁员工坠楼事件?背后深层原因剖析! 吊炸天!74款APP完整源码! 成为 Android 大牛的10大独门秘籍 原文:The 10 most popular coding challenge websites for 2017 https://med…

IIS6、IIS7.5设置网站默认首页方法(Directory Listing Denied)

这篇文章主要介绍了IIS6、IIS7.5设置网站默认首页方法,如果不设置访问目录就会提示Directory Listing Denied,就是不允许列出文档,为了安全网站都会设置不设置默认,需要的朋友可以参考下 今天有个客户问我他的网址访问目录就打开网站出现Directory List…

如何使用站群程序来批量建网站?

本文转自:http://www.00-9.net/html/1.html 1、准备工作。 (1)准备好将要搭建的网站域名,并解析。 (2)准备好你的目标站。标题/关键词/描述/网站名,替换标签。 (3)服务器系统环境WIN2008 2、用到的工具: (1)009站群程序授权版&am…

网站发送邮件连接数据口创建接口等

1. 导入API.php文件&#xff08;可以参考demo项目中的api.php文件&#xff09; <?php defined(BASEPATH) OR exit(No direct script access allowed); header("Access-Control-Allow-Origin: *"); header("Access-Control-Allow-Headers: Origin, X-Reques…

在进网站之前加入一个类似开机视频的东西,视频播放完后自动跳到网站首页

首先建一个文件&#xff0c;里面放要加载的视频 <style></style> <script src"https://cdn.jsdelivr.net/npm/vue2.5.16/dist/vue.js"></script> <link rel"stylesheet" href"https://unpkg.com/element-ui/lib/theme-ch…

常用各类工具网站

常用的各类网站&#xff1a; 1.自己备用&#xff0c;分享链接&#xff0c;也可供各位网友选择&#xff0c;若有侵权&#xff0c;可联系删除 2.会不定时更新 3.加油&#xff01;奥里给&#xff01; PPT&#xff1a; 1、 PPT超级市场 https://ppt.sotary.com/web/wxapp/index…

最好的UI/UE设计资源网站推荐-免费的头像库

在进行UI/UE设计时&#xff0c;一旦涉及到社交相关的功能&#xff0c;会经常需要使用到头像素材。而高质量、无版权要求的相关素材又非常少&#xff0c;这里为大家推荐一个素材库可以满足上述要求。 网址 FIGMA 和 SKETCH 的免费头像库 https://themeselection.com/products/e…

大型Web网站高并发架构方案

背景 搭建一套大型WEB网站从技术角度讲采用开源的成熟的方案落地实现起来很简单&#xff0c;但是怎么扛住高并发的流量呢&#xff1f;这是一个值得我们思考的问题&#xff0c;值得我们一探究竟如何优化既有架构从而实现高并发的访问&#xff0c;使系统优雅平稳的运行 现有架构…

用asyncio和aiohttp异步协程爬取披露易网站港资持股数据

这是本人毕设项目的一部分&#xff0c;也是比较核心的部分。 请自觉遵守相关法律法规&#xff0c;若侵权请联系本人立刻删除。 任务描述 爬取披露易网站上的港资持股A股详细股东数据。点击搜索栏下方的持股名单我们可以看到港资持股的股份名单。 任务分为三部分&#xff1a; …

基于GitHub搭建个人网站

基于GitHub搭建个人网站 基于GitHub搭建个人网站 我的个人站点 https://github.com/wforguo 当你撸完一份自己的个人网站&#xff0c;然后想让别人去访问它&#xff0c; 怎么办&#xff1f;去买个服务器&#xff0c;也太贵了吧&#xff01; 下面&#xff0c;利用GitHub来教你…

毕业设计——基于HTML5的洛阳旅游网站设计与实现

基于HTML5的旅游网站设计与实现 这是一个基于HTML5的旅游网站&#xff0c;论文、代码都很齐全。 获取源代码至GitHub&#xff1a;GitHub - wforguo/travel: 基于HTML5的旅游网 国内站点&#xff1a;travel: 毕业设计&#xff0c;课程设计&#xff0c;基于HTML5的洛阳旅游网开…

修改hosts不管用 为什么修改127 0 0 1指向的域名,访问域名却弹出别的网站

linux上的hosts&#xff1a; 一般在LINUX下修改完/etc/hosts文件都会立即生效的&#xff0c;即便偶尔不生效&#xff0c;只要重启一下network服务就可以了。 win上的hosts&#xff1a; 但是windows却是会遇到这样的问题&#xff0c;而且在不同版本的系统中还略有区别。 原理&am…

数据分析入门——推荐基础书以及实用网站

数据分析入门&#xff1a; 一开始肯定是数学基础巩固&#xff1a; 线性代数、统计论等。参考书成千上百&#xff0c;最重要还是理解透&#xff01; 二就是各种软件的熟悉利用&#xff1a;EXCEL SPSS SAS 等&#xff0c;这是我桌面常用到的软件&#xff1a; 三便是进阶版&#x…

GitHub网站的主题设置

文章目录 设置GitHub主题固定主题随时间自动改变主题 今天访问GitHub时&#xff0c;发现个人中心有一个新的功能点appearance。进一步发现此功能是设置GitHub的个人主题设置&#xff0c;主题有三个&#xff0c;分别为 Default light 、Default dark 、Dark dimmed 设置GitHub主…

大型网站技术架构-核心原理与案例分析

D:\和动力\大型网站技术架构-核心原理与案例分析.xmind 如果你觉得我的文章帮助到了你并节省了开发时间&#xff0c;请扫描下方二维码随意打赏❥(^_^) 您的支持是我最大的鼓励

搭建个人网站vm+center os+apache

如何搭建个人网站 准备的前提 vmcnetos 7apche 在vm上安装center os的教程就不介绍了这个有很多 1.如何配置一台刚装好了center os 7并且能够使他联网 ping 通百度 ip a查看当前ip地址&#xff08;如果显示当前界面&#xff0c;说明没有配置ip地址,网卡没有开启&#xff0…