Web服务器基础

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.mzph.cn/news/691222.shtml

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

相关文章

阿里云服务器镜像是什么?如何选择镜像?

阿里云服务器镜像怎么选择?云服务器操作系统镜像分为Linux和Windows两大类,Linux可以选择Alibaba Cloud Linux,Windows可以选择Windows Server 2022数据中心版64位中文版,阿里云服务器网aliyunfuwuqi.com来详细说下阿里云服务器操…

Go 是否有三元运算符?Rust 和 Python 是怎么做的?

嗨,大家好!本文是系列文章 Go 技巧第十四篇,系列文章查看:Go 语言技巧。 今天来聊聊在 Go 语言中是否支持三元运算符。这个问题很简单,没有。 首先,什么是三元运算符? 在其他一些编程语言中&a…

MySQL篇之分库分表

一、为什么要分库分表 1.目的 1. 分担了访问压力 2. 解决存储压力 2.分库分表的时机 1. 前提,项目业务数据逐渐增多,或业务发展迅速,单表的数据量达1000W或20G以后。 2. 优化已解决不了性能问题(主从读写分离、查询索引…&am…

数据库管理-第152期 Oracle Vector DB AI-04(20240220)

数据库管理152期 2024-02-20 数据库管理-第152期 Oracle Vector DB & AI-04(20240220)1 常用的向量检索方法聚类图搜索哈希量化 2 Oracle Vector DB中的索引索引(默认) 索引(高级)3 EMBEDDINGSSQL EMBE…

阿里云备案服务器买哪种?多少钱?有什么限制条件?

在阿里云备案服务器需要多少钱?目前符合备案条件的阿里云服务器只要30元,并且这台云服务器可以备案5个网站。2核4G配置,价格为30元3个月,也可以选择2核2G轻量服务器,61元一年,阿里云老用户还可以选择99元一…

通俗易懂地理解稀疏性

今天我想与大家探讨的是一个数学和工程学中的重要概念——稀疏性。这个概念可能听起来很抽象,但它实际上贯穿于我们生活中的许多方面。那么,稀疏性到底是什么呢?简单来说,在数学和信号处理领域,一个信号被称为稀疏&…

Eclipse - Text Editors (文本编辑器)

Eclipse - Text Editors [文本编辑器] References Window -> Preferences -> General -> Editors -> Text Editors Displayed tab witdth: 4 勾选 Insert spaces for tabs 勾选 Show line number References [1] Yongqiang Cheng, https://yongqiang.blog.csdn.n…

力扣(LeetCode)数据结构练习题(2)

今天又写了两道关于链表的练习题,来给大家分享一下。巩固一下上一篇学到的链表知识,题目可以然我们更清楚的认识链表。 目录 给你单链表的头节点 head ,请你反转链表,并返回反转后的链表 给你单链表的头结点 head ,请…

小红书数据分析:sora爆火,为内容行业带来哪些变化

导语 春节还没过完,科技圈就出“大事”了~据悉,OpenAI发布了Sora,一种由文字生成视频的AI工具,且效果极其逼真,打破了多项纪录。Sora的出现,又让人类里通用人工智能AGI近了一步。那么。Sora的出现对于小红…

外贸人做外贸听话要听音

有人说,在做外贸的时候大部分的人都是充当着客服的角色,而且遵循的模式也是一问一答,凡是客户提出的问题,我们都会尽可能详细的回答。 但是对于如何提问客户,却是不知道怎么下手, 于是,在这样的…

hive load data未正确读取到日期

1.源数据CSV文件日期字段值: 2.hive DDL语句: CREATE EXTERNAL TABLE test.textfile_table1(id int COMMENT ????, name string COMMENT ??, gender string COMMENT ??, birthday date COMMENT ????,.......) ROW FORMAT SERDE org.apache.…

wordpress企业网站模板免费

绿色风格的wordpress免费模板,经测试可以免费下载的WP模板。 https://www.wpniu.com/themes/300.html 简洁大气的文化艺术类wordpress模板,可以免费下载,实用易上手,新手也适合。 https://www.wpniu.com/themes/304.html 高端大…

C++面试宝典第30题:分发饼干

题目 假设你是一位非常棒的家长,想要给你的孩子们分发一些小饼干。但是,每个孩子最多只能给一块饼干。对每一个孩子i,都有一个胃口值gi,这是能让孩子们满足胃口的饼干的最小尺寸。对每一块饼干j,都有一个尺寸sj。如果sj >= gi,我们就可以将这个饼干j分配给孩子i,这个…

golangci-lint如何关闭typecheck

https://github.com/golangci/golangci-lint/issues/2912 typecheck是go源码的校验,无法通过.golangci.yml配置关闭 可以直接在golangci-lint源码层面关闭typecheck

Springboot AOP开发

Springboot AOP开发 一 AOP概述 AOP,即面向切面编程,简言之,面向方法编程。 针对方法,在方法的执行前或执行后使用,用于增强方法,或拓展。 二 AOP开发 1.引入 spring-boot-starter-aop 在SpringBoot项…

【高效开发工具系列】PyCharm使用

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

自养号测评低成本高效率推广,安全可控

测评的作用在于让用户更真实、清晰、快捷地了解产品以及产品的使用方法和体验。通过买家对产品的测评,也可以帮助厂商和卖家优化产品缺陷,提高用户的使用体验。这进而帮助他们获得更好的销量,并更深入地了解市场需求。因此,测评在…

.NET高级面试指南专题九【 泛型概念,常用泛型类和方法,泛型约束,协变与逆变】

C#中的泛型(Generics)是一种强大的编程特性,它允许你在编写代码时使用不特定数据类型,而在编译时确定这些数据类型。泛型使得代码更加灵活、可重用,并提高了类型安全性。 功能和原理 泛型允许你编写能够与不同数据类型…

数字孪生核心技术揭秘(五):BIM究竟是解药还是毒药?

一、关于BIM的那些幻想 1.1 BIM是“数字孪生城市”最后一块拼图? 近几年,CIM概念越来越流行,已经成为数字孪生城市的主流数据模型。CIM原始概念指的是“城市信息模型”;2015年同济大学吴志强院士基于CIM概念提出“城市智慧模型”&…

如何用ChatGPT绘图?

详情点查看公众号:技术科研吧 链接:如何用ChatGPT绘图? 一:AI领域最新技术 1.OpenAI新模型-GPT-5 2.谷歌新模型-Gemini Ultra 3.Meta新模型-LLama3 4.科大讯飞-星火认知 5.百度-文心一言 6.MoonshotAI-Kimi 7.智谱AI-GLM-…