Web服务器基础

news2024/10/3 17:16:20

Web服务器基础

【一】前端概述

请添加图片描述

【1】HTML

  • HTML(超文本标记语言)是用于创建网页结构的标记语言。
  • 它定义了网页的骨架,包括标题、段落、列表、链接等元素,但没有样式。
  • 可以将HTML视为网页的结构和内容的描述。

【2】CSS

  • css(层叠样式表)用于为HTML文档添加样式和布局。
  • 通过CSS,可以为HTML元素指定颜色、字体、大小、边距等样式属性,使网页变得美观和易于阅读。

【3】JavaScript

  • JavaScript是一种用于控制网页动态效果的脚本语言。
  • 它可以通过操作HTML和CSS来实现交互性和动态性,例如表单验证、页面元素的显示和隐藏、动画效果等。

【4】前端框架

  • 前端框架是一套封装了常用操作和功能的工具集,可以简化前端开发过程。
  • 其中一些常见的前端框架包括Bootstrap、jQuery和Vue。
  • 这些框架提供了预定义的样式、组件和功能,开发者只需按照固定的语法和规则调用这些框架提供的功能,就能快速构建出具有一致性和响应式设计的网页。

【二】HTTP协议

【1】什么是HTTP协议

  • HTTP协议是超文本传输协议,用于规定服务器和浏览器之间数据交互的格式。
  • 尽管可以不遵循该协议,但自己编写的服务端无法被浏览器正常识别,只能在单机环境中使用。

【2】HTTP协议的四大特性

  • 基于请求-响应模式:客户端发送请求,服务器返回响应。
  • 基于TCP/IP之上:作用于应用层之上的协议。
  • 无状态:HTTP协议本身不保存用户的信息,每个请求都是独立的。为了记录用户状态,出现了一些技术,如cookie、session和token。
  • 无/短链接:HTTP 1.0默认使用短链接,即请求-响应后立即断开连接。HTTP 1.1支持长链接,即双方建立连接后不会立即断开,如WebSocket。

【3】HTTP协议的格式

(1)请求数据格式
  • 请求首行:标识HTTP协议和当前请求方式。
  • 请求头:多组键值对,包含请求的附加信息。
  • 空行:用于分隔请求头和请求体。
  • 请求体:并非所有请求都有,主要用于存放POST请求提交的敏感数据。
(2)响应数据格式
  • 响应首行:标识HTTP协议、当前请求方式和响应状态码。
  • 响应头:多组键值对,包含响应的附加信息。
  • 空行:用于分隔响应头和响应体。
  • 响应体:返回给浏览器展示给用户的数据。
(3)请求方式
  • GET请求:用于向服务端请求数据,通过输入网址获取对应的内容。
  • POST请求:用于向服务端提交数据,常用于用户登录、提交表单等场景。

【三】web界面加载流程

【1】浏览器解析URL

  • URL由协议、域名(主机)和端口(默认为80)以及文件名组成。
  • 例如,http://www.example.com:80/index.html
    • 协议是HTTP
    • 域名是www.example.com
    • 端口是80(默认端口可以省略)
    • 文件名是index.html。
  • URL可以理解为在浏览器中输入的地址,其中的域名指示了要访问的服务器。

请添加图片描述

【2】DNS解析

  1. 浏览器检查DNS缓存。
    • 浏览器首先检查是否有缓存过该域名的IP地址。如果有缓存,则直接使用缓存的IP地址,跳过后续的DNS解析过程。
  2. 浏览器查找本地DNS缓存。
    • 如果在浏览器的缓存中找不到域名对应的IP地址,浏览器会查找本地计算机的DNS缓存。
    • 本地DNS缓存是操作系统或网络设备保存的最近解析过的域名和IP地址的记录。
  3. 解析本地Hosts文件。
    • 如果在本地DNS缓存中找不到域名对应的IP地址,浏览器会解析本地Hosts文件。
    • Hosts文件是一个文本文件,包含了域名和对应IP地址的映射关系。浏览器会检查Hosts文件中是否有目标域名的记录。
  4. 向递归解析服务器发送DNS查询请求。
    • 如果在本地Hosts文件中找不到域名对应的IP地址,浏览器会向递归解析服务器发送DNS查询请求。
    • 递归解析服务器是由互联网服务提供商(ISP)或其他网络服务提供商提供的DNS服务器,负责处理DNS解析请求。
  5. 逐级解析域名的IP地址。
    • 递归解析服务器会根据域名的层级结构,依次向上级DNS服务器查询域名的IP地址。
    • 这个过程从顶级域名服务器(Root DNS Server)开始,逐级向下查询,直到找到目标域名的IP地址。
  6. 解析完成,获取IP地址。
    • 经过多级DNS服务器的解析,最终获取到目标域名的IP地址
    • 例如,用户输入的URL为https://www.example.com
    • 经过DNS解析后得到IP地址为192.0.2.123

【3】建立TCP连接

  • 浏览器使用获取到的IP地址和默认的端口号(通常是80)与目标服务器建立TCP连接。
  • 这个过程涉及到TCP/IP的三次握手,确保客户端和服务器之间建立稳定可靠的连接。

【4】发送HTTP请求

  • 一旦TCP连接建立成功,浏览器会发送一个HTTP请求给目标服务器。
  • HTTP中的请求报文:
    • 请求报文:客户端(浏览器)向web服务器发送的请求报文。报文的所有字段都是ASCII码。
    • 请求报文中可以携带数据,也可以不携带数据。
    • 请求报文由请求行、请求头部、空行和请求包体 4 个部分组成。

【5】服务器处理请求并响应

  • 目标服务器接收到浏览器发送的HTTP请求后,会根据请求的内容进行相应的处理。

  • 服务器处理完请求后,会生成一个HTTP响应,该响应包括状态码、响应头、空行和响应体。

  • 常见状态码

    • 200:表示请求成功,服务器成功处理了请求并返回了相应的内容。
    • 301:表示永久重定向,请求的资源的URL已永久更改,服务器在响应中提供了新的URL,客户端应该使用新的URL进行后续请求。
    • 302:表示临时重定向,请求的资源的URL临时更改,服务器在响应中提供了新的URL,客户端应该使用新的URL进行后续请求。
    • 304:表示未修改,用于缓存控制。客户端发送了一个带有条件的请求(例如,包含If-Modified-Since头部),服务器判断资源未发生修改,返回304状态码,告诉客户端使用缓存中的内容。(未改变,和缓存里面的是一样的)
    • 404:表示未找到,请求的资源不存在于服务器上,服务器无法找到请求的URL。
    • 502:表示网关错误,通常指后端的真实服务器出现故障或无法访问,作为网关的服务器无法从真实服务器获取有效的响应。
    • 500:表示内部服务器错误,指服务器在处理请求时遇到了意外的错误,导致无法完成请求。

【6】接收和渲染页面

  • 浏览器接收到服务器返回的数据包,根据浏览器的渲染机制对相应的数据进行渲染。
  • 渲染就是将响应报文里的html文件+图片+视频等展示出来,看到效果。
  • 浏览器支持HTML语言,支持http,播放器等功能。

【7】断开TCP连接

  • 页面渲染完成后,如果没有keep-alive机制或者WebSocket等长连接技术,浏览器会发送一个关闭TCP连接的请求给服务器,进而两者断开连接。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

NAS系统折腾记 | TinyMediaManager刮削电影海报

搭建好了NAS系统和Emby Media Server,接下来就是怎样对下载好的电影/电视剧集等内容进行刮削来展示电影海报墙获得更好的效果了。实际上,Emby Server本身就内置了强大的元数据抓取功能,能够自动从互联网上抓取电影、电视剧的元数据和海报等信…

mysql在服务器中的主从复制Linux下

mysql在服务器中的主从复制Linux下 为什么要进行主从复制主从复制的原理主从复制执行流程操作步骤主库创建从库创建 测试 为什么要进行主从复制 在业务中通常会有情况,在sql执行时,将表锁住,导致不能进行查询,这样就会影响业务的…

【教程】MySQL数据库学习笔记(一)——认识与环境搭建(持续更新)

写在前面: 如果文章对你有帮助,记得点赞关注加收藏一波,利于以后需要的时候复习,多谢支持! 【MySQL数据库学习】系列文章 第一章 《认识与环境搭建》 第二章 《数据类型》 文章目录 【MySQL数据库学习】系列文章一、认…

C++ 位运算常用操作 二进制中1的个数

给定一个长度为 n 的数列,请你求出数列中每个数的二进制表示中 1 的个数。 输入格式 第一行包含整数 n 。 第二行包含 n 个整数,表示整个数列。 输出格式 共一行,包含 n 个整数,其中的第 i 个数表示数列中的第 i 个数的二进制表…

深度解析 Transformer 模型:原理、应用与实践指南【收藏版】

深度解析 Transformer 模型:原理、应用与实践指南 1. Transformer 模型的背景与引言2. Transformer 模型的原理解析2.1 自注意力机制(Self-Attention)自注意力机制原理 2.2 多头注意力机制(Multi-Head Attention)多头注…

vue的生命周期图解

vue的生命周期图解 添加链接描述 vue的生命周期函数及过程的简述: vue的生命周期函数,其实就是vm的生命周期; 创建:beforeCreate、created 挂载:beforeMount、mounted 更新:beforeUpdate、updated [ˌʌpˈ…

(AtCoder Beginner Contest 341)(A - D)

比赛地址 : Tasks - Toyota Programming Contest 2024#2&#xff08;AtCoder Beginner Contest 341&#xff09; A . Print 341 模拟就好了 &#xff0c; 先放一个 1 , 然后放 n 个 01 ; #include<bits/stdc.h> #define IOS ios::sync_with_stdio(0);cin.tie(0);cout…

初始HTTP协议

一、http协议 1、http相关概念 互联网&#xff1a;是网络的网络&#xff0c;是所有类型网络的母集因特网&#xff1a;世界上最大的互联网网络。即因特网概念从属于互联网概念。习惯上&#xff0c;大家把连接在因特网上的计算机都成为主机。万维网&#xff1a;WWW&#xff08;…

vue3项目配置按需自动引入自定义组件unplugin-vue-components

我们通常在项目中&#xff0c;需要手动引入自定义的各种组件&#xff0c;如果涉及的页面功能比较多的话&#xff0c;光是import的长度都能赶上春联了。 如果&#xff0c;能有一个插件帮我们实现自动引入&#xff0c;是不是要谢天谢地了呢&#xff1f; 接下来就进入我们的主角u…

Vue2尚品汇前台项目笔记——(1)项目初始化

Vue2尚品汇前台项目笔记 一、项目初始化 使用[脚手架创建项目&#xff0c;具体参考之前的脚手架配置笔记&#xff0c;我起名叫vue_shop_test 1.脚手架目录分析 node_modules文件夹&#xff1a;项目依赖文件夹 public文件夹&#xff1a;一般放置一些静态资源&#xff08;图…

蓝桥杯:C++二叉树

二叉树 几乎每次蓝桥杯软件类大赛都会考核二叉树&#xff0c;它或者作为数据结构题出现&#xff0c;或者应用在其他算法中。大部分高级数据结构是基于二叉树的&#xff0c;例如常用的高级数据结构线段树就是基于二叉树的。二叉树应用广泛和它的形态有关。 二叉树的定义&#x…

Junit测试套件(Test Suite)

0. 什么是测试套件 对多个测试类的统一执行 只有一个测试类 点击一下执行就好有 5个测试类 分别打开 挨个点执行有100个测试类 &#xff1f;&#xff1f;分别点开执行 为100个测试类创建一个测试套件&#xff0c;然后再执行一次测试套件 √ 一个测试套件“囊括“三个测试类…

【Funny Game】 人生重开模拟器

目录 【Funny Game】 人生重开模拟器&#xff01; 人生重开模拟器&#xff01; 文章所属专区 Funny Game 人生重开模拟器&#xff01; 人生重开模拟器&#xff0c;让你体验从零开始的奇妙人生。在这个充满惊喜和挑战的游戏中&#xff0c;你可以自由选择性别、出生地、家庭背景…

Bpmn-js 属性控制

我们可以通过bpmn-js来访问对应的BPMN图例的属性信息。对应的流程图中的每个图例元素&#xff08;如开始、结束、中间/边界事件等都通过businessObject属性存储对基础BPMN元素的引用。业务对象是从BPMN 2.0 XML导入并在导出过程中序列化的实际元素。使用业务对象来读取和写入BP…

云渲染是什么?一文带你了解渲染100云渲染!

云渲染&#xff0c;做为设计行业必不可少的存在&#xff0c;新年伊始&#xff0c;带新朋友有更深入的了解。 云渲染的概念 云渲染是一种基于云计算的渲染服务&#xff0c;它利用云计算平台的强大计算能力来提供高效的渲染服务。 云渲染将3D程序放在远程的服务器中渲染&#x…

阿基米德签证小程序管理系统功能清单

阿基米德签证小程序管理系统&#xff0c;底层架构采用当前国内最流行的php框架thinkphp8.0、采用广泛使用的MYSQL数据库&#xff0c;管理后台前后台分离&#xff0c;同时使用了当今最流行的基于VUE3和elementPlus前端框架&#xff0c;小程序采用了支持多端合一的UNI-APP开发&am…

离线数仓(二)【用户行为日志采集平台搭建】

用户行为日志采集平台搭建 1、用户行为日志概述 用户行为日志的内容&#xff0c;主要包括用户的各项行为信息以及行为所处的环境信息。收集这些信息的主要目的是优化产品和为各项分析统计指标提供数据支撑。收集这些信息的手段通常为埋点。 目前主流的埋点方式&#xff0c;有代…

力扣题目训练(15)

2024年2月8日力扣题目训练 2024年2月8日力扣题目训练507. 完美数520. 检测大写字母521. 最长特殊序列 Ⅰ221. 最大正方形237. 删除链表中的节点115. 不同的子序列 2024年2月8日力扣题目训练 2024年2月8日第十五天编程训练&#xff0c;今天主要是进行一些题训练&#xff0c;包括…

柚见(伙伴匹配系统)第六期

开发主页 开发主页&#xff08;默认推荐和自己兴趣相当的用户&#xff09;优化主页的性能&#xff08;缓存 定时任务 分布式锁&#xff09; 前端recommend 最简单&#xff1a;直接 list 列表 cv searchResult页面的代码 修改 后端接口 数据内容下边距修改 提取用户信息卡…

沁恒CH32V30X学习笔记06---串口dma接收+空闲中断组合接收数据

DMA 控制器提供 18 个通道,其中 DMA1 包含 7 个通道,DMA2 包含 11 个通道,每个通 道对应多个外设请求,通过设置相应外设寄存器中对应 DMA 控制位 通道映射 dma1 dma2 示例代码 bsp_usart_it.c /** bsp_usart_it.c** Created on: 2024年2月18日* Author: admin*/…