当前位置: 首页 > ds >正文

Web服务器

注:本文以 WDN 的知识为基础

概述

web服务器可以指代硬件或软件,它们是协同工作的整体

        硬件:一台存储了 web服务器软件以及网站的组成文件(如HTML文档、图片、CSS样式、JS文件)的计算机,它接入到互联网并支持与其他连接到互联网的设备进行物理数据的交互

        软件:包括控制网络用户如何访问托管文件的几个部分,至少是一台HTTP服务器。HTTP服务器是一种能够理解 URL网络地址(Uniform Resource Locator)HTTP网超文本传输协议(HyperText Transfer Protocol) 的软件。一个HTTP服务器可以通过它存储的网站域名进行访问,并将这些托管网站的内容传递给用户的设备

当浏览器想要提取一个托管在网络服务器上的文件时,浏览器会通过HTTP请求这个文件,当这个请求到达正确的web服务器(硬件)时,HTTP服务器(软件)收到这个请求,找到这个被请求的文档(如果文档不存在则返回一个404响应),并将这个文档通过HTTP协议发送给

静/动态

静态web服务器是指将托管文件保持原样地传输到用户手中的浏览器,由一个计算机(硬件)和一个HTTP服务器(软件)组成

动态web一般只有几个HTML模版和一个巨大的数据库组成,而不是成千上万的静态HTML文档,这样使得维护和提供内容更加容易

托管文件

一个网络服务器需要存储这个网站的所有文件,包括所有HTML、图片、CSS样式表、JS文件、字体、视频等等

虽然你可以在自己的计算机上存储这些文件,但是在一个专用的web服务器上存储会更加方便,因为

        专用web服务器可用性更强,会一直启动和运行

        专用web服务器总是连接到互联网,而且有异地容灾等方式避免数据丢失

        专用web服务器可以一直有一样的IP地址,也称为专有IP地址(不是所有的互联网服务提供者ISP都会为家庭线提供一个固定的IP地址)

        专用服务器一般是外包给第三方专业提供者维护

通过HTTP交流

web服务器提供了 HTTP(HyperText Transfer Protocol超文本传输协议)支持,明确了如何在两台计算机间传输超文本(链接的web文档),协议是一套为了两台计算机交流而制定的规则,HTTP时一个文本话的、无状态的协议

文本化:所有命令都是纯文本且人类可读的

无状态:无论是服务器还是客户都不会记住之前的交流,仅靠HTTP并不能记住你输入的密码等等,你需要一个应用服务器来进行这样的工作

一般只有客户端可以发送HTTP请求,只会发送到服务器,通常服务器只能响应(服务器也可以通过一种叫做服务器推送的机制(HTTP/2),在客户请求之前将数据填充到客户的缓存之中)

在通过HTTP请求一个文件时,客户端必须提供这个文件的URL

网络服务器必须答应每一个HTTP请求,至少也要回复一个报错

在web服务器中,HTTP服务器负责处理和响应传入的请求

1 当收到一个请求时,HTTP服务器首先要检查所请求的URL是否匹配

2 如果匹配,网络服务器会传送文件内容返回浏览器,如果不是服务器会检查是否应该动态生成请求所需文件(服务器端动态编码)

3 如果两种都不想,那么就会返回 404 错误

http://www.xdnf.cn/news/8049.html

相关文章:

  • C++语言的跨平台挑战和应对策略
  • centos7 p8p1使用ip addr查看时有的时候有两个ip,有的时候只有一个ip,有一个ip快,有一个ip慢
  • 如何在 Windows 10 或 11 上使用命令提示符安装 Angular
  • Vue Router动态路由与导航守卫实战
  • RESTful风格
  • 从零基础到最佳实践:Vue.js 系列(6/10):《Composition API(组合式 API)》
  • 论文篇目录-研究生如何阅读编写论文
  • Linux系统编程-DAY02
  • 直播美颜SDK技术解析:滤镜渲染与动态贴纸引擎融合的底层实现
  • 机器学习第二十讲:网格搜索 → 像尝试所有密码组合找最佳解锁方式
  • Python爬虫实战:获取天气网最近一周北京的天气数据,为日常出行做参考
  • java的synchronized 原理及功能
  • 继DeepSeek之后,又一国产模型迎来突破,或将解答手机端AI的疑惑
  • 教培机构线上线下课程小程序开发:构建数字化教育新生态
  • 模板初阶【C++】
  • 景区导览系统有哪些技术选型?架构设计到真实场景的攻坚指南(一)
  • docker面试题(4)
  • Parasoft为可口可乐赋能: 强化软件开发与质量保证
  • 二叉树的半线性
  • 前端面经-nginx/docker
  • 【C++】vector容器实现
  • pyomo简介及使用指南
  • EXIST与JOIN连表比较
  • Spring Framework 的 spring-core 和 Spring Security 兼容版本
  • 论文篇-1.3.如何整理一篇论文
  • 【leetcode】75.颜色分类
  • leetcode 3356. 零数组变换 II 中等
  • windows安装python环境
  • Supplemental Table 5FAM49B H-SCORE与其他临床特征的关系
  • Win11上安装docker