web 订阅
web(World Wide Web)即全球广域网,也称为万维网,它是一种基于超文本和HTTP的、全球性的、动态交互的、跨平台的分布式图形信息系统。是建立在Internet上的一种网络服务,为浏览者在Internet上查找和浏览信息提供了图形化的、易于访问的直观界面,其中的文档及超级链接将Internet上的信息节点组织成一个互为关联的网状结构。 [1] 展开全文
web(World Wide Web)即全球广域网,也称为万维网,它是一种基于超文本和HTTP的、全球性的、动态交互的、跨平台的分布式图形信息系统。是建立在Internet上的一种网络服务,为浏览者在Internet上查找和浏览信息提供了图形化的、易于访问的直观界面,其中的文档及超级链接将Internet上的信息节点组织成一个互为关联的网状结构。 [1]
信息
外文名
web
别    称
万维网
表现形式
超文本、超媒体、超文本传输协议
中文名
全球广域网或万维网
属    性
分布式图形信息系统
全    称
World Wide Web
web起源
1989年CERN(欧洲粒子物理研究所)中由Tim Berners-Lee领导的小组提交了一个针对Internet的新协议和一个使用该协议的文档系统,该小组将这个新系统命名为World Wide Web,它的目的在于使全球的科学家能够利用Internet交流自己的工作文档。这个新系统被设计为允许Internet上任意一个用户都可以从许多文档服务计算机的数据库中搜索和获取文档。1990年末,这个新系统的基本框架已经在CERN中的一台计算机中开发出来并实现了,1991年该系统移植到了其他计算机平台,并正式发布。 [2] 
收起全文
精华内容
下载资源
问答
  • web
    万次阅读
    2022-07-21 21:28:05

    技术趋势的到来总是带来不同行业的新变革浪潮。当互联网到来时,没有人会想象硅谷的顶级企业如何为每个人改变业务和技术。互联网商业革命多年后,世界已经为 Web3 革命做好了准备,而 Web3 游戏是这一漫长旅程的最初步骤之一。 

    基于 Web3 的游戏概念与传统游戏平台的概念明显不同。事实上,基于 Web3 的游戏为通过去中心化的方式参与游戏提供了一种创新的视角。那么,什么是 Web3 游戏?以下讨论通过深入了解 Web3 游戏的基础知识,帮助您找到答案。 

    传统游戏的问题

    如果您尝试浏览与全球传统游戏行业相关的数字,那么您会发现机会之所在。视频游戏行业在全球拥有数百万客户,是一个价值数十亿美元的行业。然而,由于传统游戏行业的明显挫折 ,对 Web3 或区块链游戏的需求发生了变化。

    • 游戏内资产交易限制

    传统游戏的第一个问题是玩家可以用法定货币购买游戏中的资产。但是,这些资产仅在游戏的生态系统内具有价值。因此,玩家无法在相关游戏市场之外的任何其他平台上交易其游戏内资产。

    • 游戏内资产的真正所有权

    除了对游戏内资产交易的限制外,玩家还必须注意对其资产控制权的影响。您是游戏内资产的真正所有者吗?与顶级 Web3 游戏不同,游戏所有者或运营商拥有游戏内资产的版权。换句话说,在传统游戏中拥有游戏内资产的玩家基本上需要拥有与不同游戏内资产互动的许可。

    • 控制游戏内信息

    如果您意识到传统游戏其实是基于 Web3 的新游戏模型的最佳竞争者,那么您必须关注去中心化的困境。您必须注意,传统游戏将与游戏相关的所有信息存储在自己的服务器上。游戏管理员完全控制游戏相关信息的使用,从而增加了中心化的负担。然而,中心化服务器的局限性导致了数字资产的漏洞和保护不足。 

    加密世界中 Web3 游戏概念的演变主要是为了解决传统游戏行业中的这些问题。让我们更多地了解基于 Web3 的游戏以及革命性游戏模式的关键特征。

    Web3 游戏的定义

    在任何关于“什么是 Web3 游戏”的讨论中,显而易见的方面都将从基于 Web3 游戏的定义开始。您可以将该术语理解为一种去中心化游戏的新范式。Web3 游戏或游戏生态系统中的所有活动,以及游戏内资产和经验的所有权,都超出了任何中央机构的范围。玩家在去中心化的 Web3 游戏生态系统中对其资产和经验拥有完全的所有权

    Web3 游戏的主要亮点之一是区块链在游戏世界中的整合。这是怎样成为可能的,为什么相关?

    当你审视传统游戏行业的问题和 Web3 游戏的特点时,你会发现一种富有成效的联系。例如,顶级 Web3 游戏的去中心化优势有助于玩家对游戏的未来发表意见。此外,Web3 游戏提供了边玩边赚的创新优势,而不是传统游戏中的付费游戏模式。Web3 游戏中支持“边玩边赚”功能的一些显著亮点,包括资产交易或可交易游戏 Token 的功能。Axie Infinity 是一种流行的边玩边赚游戏,它为NFT的回报提供货币奖励的便利。

    基于提供公平的虚拟市场, Web3 游戏在加密领域的重要性也显著增强。Web3 游戏可以为玩家提供对游戏内数字资产的完全访问权和完全所有权。这些游戏能够以 NFT 的形式存储游戏中的数字资产,同时支持互操作性。Solana 和 Polkadot 等现代区块链网络通过利用跨链通信桥梁提供了互操作性的优势。

    Web3 游戏的主要特征

    在本次讨论中,在Web3 游戏列表之前的下一个重要亮点将是明显关注与 Web3 游戏相关的一些关键功能。借助 Web3 游戏中的新游戏模式,玩家可以在所有权、控制权和交易游戏内资产和收藏品的灵活性方面拥有更好的权限。以下是您可以在当前 Web3 游戏中找到的一些基本特征。 

    • 所有权控制和资产的无缝流动

    区块链游戏最重要的特点是对所有权的控制,因为游戏提供了自我主权。玩家可以通过 NFT 对游戏内资产和收藏品行使完全所有权。Web3 确保用户对其游戏内资产拥有真正的所有权,同时具有竞争资产互操作性的优势。例如,玩家在一个游戏中拥有游戏内资产的所有权,然后在他们选择的另一个平台上使用它们。 

    • 以玩家为中心的体验

    Web3 游戏中的顶级玩家展示了新的游戏生态系统如何在根据玩家偏好量身定制的体验中蓬勃发展。您可以发现 Web3 游戏专注于为玩家提供最佳奖励的许多值得注意的方面。例如,即边玩边赚游戏展示了玩家如何充分利用游戏来赚取金钱奖励。此外,Web3 游戏中的自主权方面也强调了他们如何看待玩家的利益。 

    • 透明度和可用性

    关于“什么是 Web3 游戏”最引人注目的亮点之一是该过程的分布式特性。您不会像传统游戏的集中式服务器那样出现单点故障。最重要的是,基于区块链的游戏使用投票共识来改变游戏过程。  因此,Web3游戏可以提供更好的透明度。此外,Web3 游戏生态系统的自主运作和中心调控(项目方)的最小干预确保了高可用性。你也有高度弹性的数据存储设施和区块铸币的优势,以减少停机时间和更好的可扩展性。

    Web3 游戏所需的技术

    创建 Web3 游戏所需的技术也是加密论坛中 Web3 游戏的最大亮点之一。您可以注意到 Web3 游戏堆栈中的以下重要技术。 

    • Web3 dApp

    顶级 Web3 游戏的组件中的第一个条目将指向 Web3 dApp。Web3 库帮助游戏开发者和玩家与区块链网络进行交互。Web3 dApp 或库提供了支持游戏内资产和交易的必要工具。

    • 智能合约

    智能合约是你今天看到的 Web3 游戏的核心和灵魂。它们有助于定义有关游戏演变所需更改的投票和决策规则。通常,开发人员在 Web3 游戏项目中使用 Remix IDE 来编写、编译和部署智能合约。另一方面,对于简单的本地开发环境,您可以使用 Hardhat、Brownie 和 Truffle 等工具。

    • 节点提供者

    节点提供商也称为 Web3 提供商,是讨论区块链游戏及其价值的另一个重要亮点。Web3 提供商帮助提取区块链网络上的游戏信息,其中节点是 Web3 开发人员技术堆栈中不可或缺的元素。最重要的是,Web3 库或 dApp 无法与没有节点的智能合约交互。

    • 媒体标准

    加密生态系统中 Web3 游戏发展的另一个突出方面是对开放媒体标准的需求。Web3 游戏需要开放和可互操作的媒体设计标准,因为它们处理文本、音频、视频、3D 场景和许多其他为 dApp 提供动力的载体。 

    • 数字钱包

    参与顶级 Web3 游戏显然需要与基于区块链的钱包集成。Web3 游戏必须具有基于区块链的数字钱包,并具有唯一的钱包地址以提供身份证明。最重要的是,它作为不同游戏内资产和收藏品的存储库。 

    • XR 硬件

    Web3 游戏技术堆栈中的最后一个亮点将吸引人们对扩展现实硬件的关注。诸如触觉手套、智能眼镜和扫描传感器等 XR 硬件有助于增强基于 Web3 的游戏体验。事实上,XR 硬件可以作为将 Web3 游戏与更广泛的 Web3 生态系统(如元宇宙)联系起来的一个不可或缺的方面。 

    小结

    关于“什么是 Web3 游戏”的最终答案无疑为他们如何彻底改变游戏世界提供了一个合理的印象。Web3 游戏允许玩家在没有任何中央中介或管理者的情况下拥有游戏内资产和收藏品的所有权。此外, Web3 游戏列表中的边玩边赚游戏还展示了 Web3 如何永远改变游戏世界。 

    现在,如果您考虑基于区块链的游戏获得金钱奖励的前景,玩家将不再需要为玩游戏付费。凭借为玩家带来的广泛利益和广泛创新的技术堆栈,web3 游戏已显示出可观的增长潜力。

    更多相关内容
  • 海康威视web3.0开发包

    热门讨论 2018-07-12 16:28:26
    web3.0开发包,可以用,配合https://blog.csdn.net/qq_35583089/article/details/80631069
  • 海康摄像头web的demo 完整源码,描述有使用详情

    千次下载 热门讨论 2017-02-13 18:04:39
    可实现的,功能强大的海康开发包。亲测。(具体使用详本人博客http://blog.csdn.net/xu_san_duo)
  • web网页制作期末大作业

    千次下载 2015-11-17 14:31:55
    分享思维,改变世界. web网页制作,期末大作业. 所用技术:html css javascript 分享所学所得
  • WebApi和访问WebApi两个项目

    千次下载 热门讨论 2014-12-05 15:08:48
    WebApi和访问WebApi两个项目,有源码,注释非常详细,希望对大家有帮助。 HttpWebRequest类访问webApi
  • 浙江大华摄像头Web3.0网页播放SDK插件包 设置好ddns和端口映射, 使用本sdk包, 可以在网页上播放远程摄像头实时/历史视频.
  • weboffice for chrome firefox

    热门讨论 2015-04-01 15:45:10
    weboffice for chrome firefox,点聚weboffice兼容谷歌chrome与firefox浏览器,解决了weboffice在谷歌下无法使用的问题
  • Java Web开发完全掌握

    千次下载 2016-01-24 20:29:32
    《Java Web开发完全掌握》主要内容简介:java是目前最受欢迎、应用最为广泛的跨平台程序设计语言之一。全书详细讲解了java web开发的相关技术知识,主要包括javascript、jsp、javabean、表达式语言(el)、jsp标签库...
  • Java Web酒店管理系统源码 +mysql 数据库

    千次下载 热门讨论 2014-03-19 10:04:37
    酒店管理系统分为前台和后台两个部分,其中后台... <welcome>/WEB-INF/pages/userLogin.jsp 复制代码 数据库配置 为hotel-hibernate.xml 文件 测试了将近2个小时 系统跑的还不错 一下小细节 bug 大家可以自己去调整下
  • 1. Web服务器 2. Web容器 ① Web容器的组成 ② Web容器的作用 3. Servlet容器 ① Servlet容器的作用 ② Servlet容器的工作过程 ③ Servlet ④ Servlet的工作过程 ⑤ Servlet变化过程 4. Spring容器 5. SpringMVC容器...


    一、服务器和容器

    1. Web服务器

    广义的Web服务器(Web Server):提供web服务的软件或主机,即Web服务器软件或装有Web服务器软件的计算机。

    Web服务器可以处理 HTTP 协议,响应针对静态页面或图片的请求(静态请求),进行页面跳转。

    有的Web服务器还能处理动态请求,它会把动态请求委托其它程序(它的扩展、某种语言的解释引擎(php)、Web容器)。

    常见的Web服务器有:Apache、IIS、Tomcat、Jetty、JBoss、webLogic等。

    2. Web容器

    Web容器是一种服务程序,在服务器一个端口就有一个提供相应服务的程序,这个程序就是用来处理从客户端发出的请求的。一个服务器可以有多个容器。

    常见的Web容器有:IIS(asp容器)、Tomcat(servlet容器)、Jboss(EJB容器)。

    其实现在在很多时候,大家对Web服务器和Web容器已经没有了明确的界限。通常把Web服务器和Web容器当成同一个东西在讲。

    文章后面部分所讲的web容器都是以Tomcat容器为例。

    ① Web容器的组成

    Web容器管理Servlet(通过Servlet容器)、监听器(Listener)、过滤器(Filter)等。

    • Servlet:称为小服务程序或服务连接器,用Java编写的服务器端程序,具有独立于平台和协议的特性,是一个Java类。它负责客户端和服务端的信息交互和处理。

      Servlet不能独立运行(没有main方法),必须存放在Servlet容器中,由Servlet容器去管理Servlet。

    • Filter:Servlet的作用是处理请求,而Filter的作用是拦截请求和放行,在拦截请求后可以修改request和response,实现我们想实现的功能。Filter不能产生一个请求或者响应,只是能对请求或者响应进行拦截。

    • Listener:监听器。它可以监听Application、Session、Request对象,当这些对象发生变化的时候就会调用对应的监听方法。

    ② Web容器的作用

    • 管理和布置Web应用
    • 响应针对静态页面或图片的请求(静态请求
    • 动态请求委托给其他程序(Servlet容器、CGI等等技术)

    ServletFilterListener这些都是在Web容器的掌控范围里。但不在Spring容器和SpringMVC容器的掌控范围里。所以无法在这些类中直接使用Spring注解的方式来自动装配需要的对象,因为Web容器是无法识别Spring注解的。

    Web容器没有Servlet容器,也是可以直接访问静态页面的,比如Apache服务器。但是如果要显示jsp/servlet,就必需要Servlet容器。可是光有Servlet容器也是不够的,因为它需要被解析成html输出,所以仍需要一个Web容器。

    大多数的Web容器都包含Servlet容器,如:Tomcat、Jetty、webLogic。

    3. Servlet容器

    Servlet容器全称server applet,意为服务程序。Servlet容器负责管理Servlet,用与处理动态请求。

    Servlet容器是与Servlet交互的Web服务器的一部分,它可以从Web页面接收请求后再将这些请求重定向到Servlet对象中,然后将动态生成的结果返回到正确的位置中。

    Servlet容器给上级容器(Tomcat)提供doGet()和doPost()等方法。其生命周期实例化、初始化、调用、销毁受控于Tomcat容器。

    利用Servlet容器提供的方法,能轻松的让Servlet与Web服务器对话,而不用自己建立serversocket、监听某个端口、创建流等等。容器知道自己与Web服务器之间的协议,不用担心Web服务器和你自己的Web代码之间的API,只需要考虑如何在Servlet中实现业务逻辑。

    大家通常把Tomcat称作Servlet容器,因为Tomcat就是一个围绕着Servlet工作的一个服务器软件。

    ServletContext与Servlet容器的关系

    ServletContext是Servlet与Servlet容器之间的直接通信的接口。

    Servlet容器在启动一个Web应用时,会为它创建一个ServletContext对象。每个web应用有唯一的ServletContext对象。
    同一个Web应用的所有Servlet对象共享一个ServletContext,Servlet对象可以通过它来访问容器中的各种资源。

    为了方便描述,后文直接将ServletContext称作Servlet容器。

    ① Servlet容器的作用

    • 管理Servlet(业务类)

      • 负责加载类、实例化和初始化Servlet
      • 调用Servlet的service方法提供服务
      • 管理Servlet实例的垃圾回收
      • 管理Servlet之间的共同资源(servletContext)
    • 处理动态请求

      • 解析包装请求
      • 调用某个Servlet
      • 将Servlet的执行结果返回给请求端
    • 多线程

      • 自动为它所接收的每个Servlet请求创建一个新的java线程
      • 但是也会出现线程安全问题
    • 实现简便安全

      • 使用xml部署描述文件来配置和修改安全性
    • JSP支持

      • 负责将jsp代码翻译为真正的java代码
    • 管理通信

      • 负责管理servlet与web服务器之间的通信

    ② Servlet容器的工作过程

    • Web服务器接收HTTP请求。
    • Web服务器将请求转发到Servlet容器。
    • 如果对应的Servlet不在容器中,那么将被动态检索并加载到容器的地址空间中。
    • 容器调用init()方法进行初始化(仅在第一次加载 Servlet 时调用一次)。
    • 容器调用Servlet的service()方法来处理HTTP请求,即读取请求中的数据并构建响应。Servlet将暂时保留在容器的地址空间中,可以继续处理其它 HTTP 请求。
    • Servlet容器将结果返回给Web服务器,Web服务器将动态生成的结果返回到浏览器/客户端。

    ③ Servlet

    Servlet是用来处理客户端请求并产生动态网页内容的Java类,Servlet主要是用来处理或者是存储HTML表单提交的数据,产生动态内容,在无状态的HTTP协议下管理状态信息。

    所有的Servlet都必须要实现的核心的接口是javax.servlet.Servlet。每一个Servlet都必须要直接或者是间接实现这个接口,或者是继承javax.servlet.GenericServlet或者javax.servlet.http.HTTPServlet。
    在这里插入图片描述

    ④ Servlet的工作过程

    • 客户端发送请求,请求传递到Servlet容器;
    • Servlet容器将数据转换成服务端可以处理的数据后发给服务端;
    • 当服务端处理完成之后,返回给Servlet容器;
    • Servlet容器将其转换成客户端可以处理的数据交给客户端。

    ⑤ Servlet变化过程

    • 不同请求的处理逻辑不同,于是将逻辑处理这块单独抽取出来成了Servlet
    • 但是Servlet并不擅长往浏览器输出HTML页面,所以出现了JSP
    • 随着三层架构的出现,一些逻辑从Servlet抽取出来,分担到Service和Dao
    • 随着Spring的出现,Servlet开始退居幕后,取而代之的是方便的SpringMVC。

    SpringMVC的核心组件DispatcherServlet其实本质就是一个Servlet。它在原来HttpServlet的基础上,又封装了一条逻辑。

    4. Spring容器

    Spring容器用来管理Service和Dao。

    5. SpringMVC容器

    SpringMVC容器用来管理Controller、视图解析器(view resolvers)等。

    6. SpringBoot容器

    SpringBoot容器是一个应用容器,管理所有bean。

    大家也常叫做Spring容器,这为了和上面的Spring容器区分开来,称他为SpringBoot容器。

    二、容器相关知识归纳

    1. 各种容器的管理范围

    • Web容器:管理Listener(监听器)、Filter(过滤器)、间接管理Servlet(通过Servlet容器)
    • Servlet容器:管理Servlet
    • Spring容器:管理Service、Dao
    • SpringMVC容器:管理Controller
    • SpringBoot容器:管理所有Bean

    2. 为何设计父子容器

    在早期的Spring+SpringMVC的项目中,会有父子容器这个概念(Spring容器:父容器;SpringMVC容器:子容器)。

    早期为什么会这样设计呢?

    • 早期Spring为了划分框架边界。将Service、Dao层交给Spring来管理(父容器)、Controller层交给SpringMVC管理(子容器)
    • Spring规定:子容器可以获取父容器的bean,但父容器不可以获取子容器的bean(父子容器的关系就像子类和父类的关系)

    可见,父子容器的设计主要是要是为了方便子容器的切换

    比如:我们想把Web层从SpringMVC替换成Struts, 那么只需要将spring­mvc.xml替换成Struts的配置文件struts.xml即可,而spring­core.xml不需要改变。

    因此才会有网络上大家常说的:Service、Dao无法注入Controller,Controller却可以注入Service、Dao。

    但需注意:这概念只在Spring+SpringMVC项目中,SpringBoot项目并没有父子容器这个概念。

    3. 父子容器的事务问题

    事务管理器属于Spring容器管理,SpringMVC容器无法访问到事务相关的对象,所以不能在Controller上配置事务。

    三、各种项目中的容器

    1. SpringMVC项目

    ① 项目背景

    • SpringMVC+Tomcat
    • 配置DispatcherServlet的为dispatcherServlet。

    项目用到的容器:Web容器、Servlet容器、SpringMVC容器。

    ② Servlet容器

    全局上下文servletContext(Servlet容器)是一个ApplicationContextFacade类型的对象。

    Servlet容器的属性:

        private final Map<String, Class<?>[]> classCache;
        private final Map<String, Method> objectCache;
        private final ApplicationContext context;
    

    servletContext中context属性就是Tomcat的上下文信息。它是一个ApplicationContext类型的对象。

    context中有一个Map类型的属性attributes,我们的SpringMVC容器就在里面。

    ③ SpringMVC容器

    SpringMVC容器是一个XmlWebApplicationContext类型的对象。

    attributes中键为org.springframework.web.servlet.FrameworkServlet.CONTEXT.dispatcherServlet的值存的就是SpringMVC容器对象。

    SpringMVC容器的主要属性:

    • servletContext:Servlet容器的引用
    • servletConfig:servletConfig的引用
    • beanFactory:DefaultListableBeanFactory类型,管理SpringMVC容器中的所有bean
    • configLocations:SpringMVC的配置文件路径,如classpath:springMVC.xml
    • parent:父容器,值为null

    ④ 容器关系图

    在这里插入图片描述

    2. Spring+SpringMVC项目

    ① 项目背景

    • Spring+SpringMVC+Mybatis+Tomcat
    • 配置DispatcherServlet的为dispatcherServlet。

    项目用到的容器:Web容器、Servlet容器、Spring容器、SpringMVC容器。

    ② Servlet容器

    全局上下文servletContext(Servlet容器)是一个ApplicationContextFacade类型的对象。

    Servlet容器的属性:

        private final Map<String, Class<?>[]> classCache;
        private final Map<String, Method> objectCache;
        private final ApplicationContext context;
    

    servletContext中context属性就是Tomcat的上下文信息。它是一个ApplicationContext类型的对象。

    context中有一个Map类型的属性attributes,我们的Spring容器和SpringMVC容器都在里面。

    ③ Spring容器

    Spring容器是一个XmlWebApplicationContext类型的对象。

    attributes中键为org.springframework.web.context.WebApplicationContext.ROOT的值存的就是Spring容器对象。

    Spring容器主要属性:

    • servletContext:Servlet容器的引用
    • beanFactory:DefaultListableBeanFactory类型,管理Spring容器中的所有bean
    • parent:父容器,这里Spring容器就是父容器,所以值为null

    ④ SpringMVC容器

    SpringMVC容器是一个XmlWebApplicationContext类型的对象。

    attributes中键为org.springframework.web.servlet.FrameworkServlet.CONTEXT.dispatcherServlet的值存的就是SpringMVC容器对象。

    SpringMVC容器主要属性:

    • servletContext:servletContext的引用
    • servletConfig:servletConfig的引用
    • beanFactory:DefaultListableBeanFactory类型,管理Spring容器中的所有bean
    • configLocations:SpringMVC的配置文件路径,如classpath:springMVC.xml
    • parent:父容器,也就是Spring容器

    ⑤ 父子容器

    在Spring+SpringMVC项目中,Spring容器和SpringMVC容器为父子容器:

    • Spring容器和SpringMVC容器共同管理所有的bean
    • Spring容器管理Service和Dao,SpringMVC容器管理Controller
    • Spring容器为父容器,SpringMVC容器为子容器
    • SpringMVC容器有指向Spring容器的引用,但Spring容器没有指向SpringMVC容器的引用

    所以Controller可以注入Service和Dao对象,但是在Service和Dao里不可以注入Controller对象。

    SpringMVC的拦截器(Interceptor)也是SpringMVC容器管理的,所以Interceptor也是可以可以注入Service和Dao对象的。

    ⑥ 容器创建过程

    容器的创建过程:

    1. Tomcat服务器启动,Servlet容器启动
    2. 创建Spring容器的实例
    3. 创建SpringMVC容器的实例

    容器的详细创建过程可参考文章:Spring+SpringMVC项目中的容器初始化过程

    ⑦ 容器关系图

    在这里插入图片描述

    3. SpringBoot项目

    ① 项目背景

    SpringBoot+内置Tomcat

    SpringBoot项目中的容器:Web容器、Servlet容器、SpringBoot容器。

    对于SpringBoot项目中的容器,大家也常叫做Spring容器,这为了和上面的Spring容器区分开来,称他为SpringBoot容器。

    ② Servlet容器

    全局上下文servletContext(Servlet容器)是一个ApplicationContextFacade类型的对象。

    servletContext对象有三个属性:

        private final Map<String, Class<?>[]> classCache;
        private final Map<String, Method> objectCache;
        private final ApplicationContext context;
    

    servletContext中context属性就是Tomcat的上下文信息。它是一个ApplicationContext类型的对象。

    context中有一个Map类型的属性attributes,我们的SpringBoot容器就在里面。

    ③ SpringBoot容器

    SpringBoot容器是一个AnnotationConfigServletWebServerApplicationContext类型的对象。

    attributes中键为org.springframework.web.context.WebApplicationContext.ROOT的值存的就是SpringBoot容器对象。

    attributes中键为org.springframework.web.servlet.FrameworkServlet.CONTEXT.dispatcherServlet的值存的也是SpringBoot容器对象。

    SpringBoot容器主要属性:

    • servletContext:servletContext的引用
    • beanFactory:DefaultListableBeanFactory类型,管理SpringBoot容器中的所有bean
    • parent:null

    ④ 容器创建过程

    容器的详细创建过程可参考文章:SpringBoot项目中的容器初始化过程

    ⑤ 容器关系图

    在这里插入图片描述

    展开全文
  • flutter开发web项目

    千次阅读 2021-12-20 10:31:05
    让项目支持web :flutter create . 运行:flutter run -d chrome flutter run -d chrome --web-renderer html 打包:flutter build web --web-renderer html 官方链接:Flutter on the Web 参考视频:构建 ...



    Flutter Web在美团外卖的实践 - 掘金

    让项目支持web :flutter create .

    运行:flutter run -d chrome

    flutter run -d chrome --web-renderer html

    打包:flutter build web --release --web-renderer html

    官方链接:Flutter on the Web

    参考视频:构建 Flutter web 应用 (From Mobile App to web App)_哔哩哔哩_bilibili

    部署参考链接:「Flutter for Web 」创建与部署 - 简书

    发布到GitHub上:使用Flutter Web和GitHub Actions构建发布自己的Github Pages网站 - 简书

    前端项目自动部署GitHub Pages_哔哩哔哩_bilibili

    docker官网:Docker 教程 | 菜鸟教程


    去除链接URL中的"#"

    1.在pubspec.yaml文件中添加如下代码:
     
     # 去除网页URL中的“#”(hash) https://flutter.cn/docs/development/ui/navigation/url-strategies
      
    url_strategy: 0.2.0
     
     
    2.在main.dart文件中添加如下代码:
    import 'package:url_strategy/url_strategy.dart';
     
     
      /// 去除URL中的“#”(hash),仅针对Web。默认为setHashUrlStrategy
      /// 注意本地部署和远程部署时`web/index.html`中的base标签,https://github.com/flutter/flutter/issues/69760
     
      setPathUrlStrategy();

    dio网络请求配置:

    if (!Utils.isWeb) {
          // https://developer.github.com/v3/#user-agent-required
          options.headers['User-Agent'] = 'Mozilla/5.0';
        }

    Flutter Web使用手机浏览器调试

    在android studio中只有电脑端的chrome,如果想用手机上的浏览器调试项目,需要本地部署一下:

    flutter run -d chrome --web-hostname 192.168.3.156 --web-port 8080
    

    ip地址换成你电脑的ip地址即可,然后手机和电脑在同一网络环境下,就可以输入上面的ip+端口号访问web项目了

    flutter web渲染器相关

    html : 通过平台的 canvas 和 Element 完成布局绘制;
    canvaskit : 通过 Webassembly + Skia 绘制控件;

    虽然都知道 canvavskit 更接近 Flutter 的设计理念,但是由于它构建的 wasm 文件大小和字体加载等问题带来的成本考虑,业界一般会选用更轻量化的 html 引擎

    官方默认使用渲染器:
    1.手机浏览器:HTML。CSS,Canvas元素和SVG元素。 该渲染器的下载大小较小。
    2.桌面浏览器:Canvaskit。使用Skia编译为WebAssembly并使用WebGL渲染。 该渲染器与Flutter移动设备和台式机完全一致,具有更快的性能,并且不太可能在浏览器之间出现差异,但下载大小增加了大约2MB。
    
    指定浏览器:
    flutter run -d chrome --web-renderer html
     
    flutter run -d chrome --web-renderer canvaskit
    

    参考:超详细,Flutter2.0构建Web应用的实际体验|技术点评 - 掘金

    首次加载过慢问题优化(倒序)主要文件:CupertinoIcons.ttf  main.dart.js 和 MaterialIcons-Regular.otf

    总结:

    • 去除无用的 icon 引用;

    • 使用 tree-shake-icons 优化引用矢量图库;

    • 通过 deferred-components 实现懒加载分包;

    • 开启 gzip 等压缩算法压缩  main.dart.js ;

    7.通过外部手段(没试过):开启 gzip 等压缩算法压缩  main.dart.js 

    例如通过在部署时开启 gzip 或者 brotli 压缩,开始 gzip 后大概可以让 main.dart.js 下降到 400k 左右 

     6.MaterialIcons-Regular.otf优化

    虽然在项目中我们会使用到 MaterialIcons 的一些矢量图标,但是每次加载都要全量加载一个 1.5 MB 的字体库文件显然并不符合逻辑,所以我们可以先运行 flutter build apk ,然后通过如下命令,将 Android 上已经 shake-icons 的 MaterialIcons-Regular.otf 资源复制到已经编译好的 web/ 目录下。

    cp -r ./build/app/intermediates/flutter/release/flutter_assets/ ./build/web/assets

    优化大小:1.5mb   优化后大小:3kb

     5.main.dart.js拆包&优化:通过 deferred-components 实现懒加载分包;

    等待过程优化可在一定程度上提升等待体验,单治标不治本,要想加载快还得让加载的资源小,对于多页面应用,可以将整个 main.dart.js 拆分成多个小的包,在使用的过程中逐步加载,目前了解到美团有相应的技术,但实现细节未知,有待研究。可参考 github.com/flutter/flu…

    参考:http://t.csdn.cn/hgaUO

    大前端时代的乱流:带你了解最全面的 Flutter Web

    Flutter 延迟组件原理与自定义 【包体积优化 _ 动态化http://t.csdn.cn/7j61V

    4.等待过程优化

    页面在 js 加载完成之前都是白屏,给人一种页面卡死的感觉,为此可以在 js 加载完成前增加加载动画不至于让页面一直白屏。参考App上管用的做法,可在数据加载出来之前插入骨骼屏,实现如下:

    <iframe src="https://g.alicdn.com/algernon/alisupplier_content_web/0.9.1/skeleton/index.html"
            id="iFrame" frameborder="0" width="100%" height="100%" scrolling="no" onload="setIframeSize()"></iframe>
    <script>
        function setIframeSize() {
          <!-- 骨骼屏尺寸设置,占满全屏 -->
          var iframe = document.getElementById("iFrame");
          iframe.height =  document.documentElement.clientHeight;
        }
        function removeIFrame() {
          var iframe = document.getElementById("iFrame");
          iframe.parentNode.removeChild(iframe);
        }
    
    <!--   onresize属性可以用来获取或设置当前窗口的resize事件的事件处理函数-->
    <!--  onresize事件会在窗口或框架被调整大小时发生-->
        window.onresize = function() {
               setIframeSize();
        }
    
    
    
    
    
    </script>
    
    <!-- load 完成之后移除骨骼屏 -->
    <script type="text/javascript" onload="removeIFrame()"></script>

    或者:

    <!DOCTYPE html>
    <html>
    <head>
      <meta charset="UTF-8">
      <title>gsy_flutter_demo</title>
      <style>
        .loading {
          display: flex;
          justify-content: center;
          align-items: center;
          margin: 0;
          position: absolute;
          top: 50%;
          left: 50%;
          -ms-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
        }
    
        .loader {
          border: 16px solid #f3f3f3;
          border-radius: 50%;
          border: 15px solid ;
          border-top: 16px solid blue;
          border-right: 16px solid white;
          border-bottom: 16px solid blue;
          border-left: 16px solid white;
          width: 120px;
          height: 120px;
          -webkit-animation: spin 2s linear infinite;
          animation: spin 2s linear infinite;
        }
    
        @-webkit-keyframes spin {
          0% {
            -webkit-transform: rotate(0deg);
          }
          100% {
            -webkit-transform: rotate(360deg);
          }
        }
    
        @keyframes spin {
          0% {
            transform: rotate(0deg);
          }
          100% {
            transform: rotate(360deg);
          }
        }
      </style>
    </head>
    <body>
      <div class="loading">
        <div class="loader"></div>
      </div>
      <script src="main.dart.js" type="application/javascript"></script>
    </body>
    </html>

    参考链接:https://juejin.cn/post/7068533637364334622

    1.渲染引擎 Canvaskit 下载太慢,这个Canvaskit是从https://unpkg.com去加载的,需要翻墙

    解决方案:1.使用镜像 2.下载canvaskit.js 和 canvaskit.wasm 这两个文件放到自己的服务器,或其它高速服务器  3.指定使用html渲染器

    下载四个文件(参考:10.1.1.flutter-web内网 - 简书)

    (1)canvaskit.js和canvaskit.wasm
    下载地址: https://unpkg.com/browse/canvaskit-wasm@0.24.0/bin/
    (2)KFOmCnqEu92Fr1Me5WZLCzYlKw.ttf
    下载地址: https://fonts.gstatic.com/s/roboto/v20/KFOmCnqEu92Fr1Me5WZLCzYlKw.ttf
    (3)css2?family=Noto_Sans+SC
    下载地址: https://fonts.googleapis.com/css2?family=Noto+Sans+SC
    (4)将以上四个文件放到web/assets/canvaskit/文件夹中 

    通过命令行直接运行:(release/debug)

    flutter run --web-renderer canvaskit --dart-define=FLUTTER_WEB_CANVASKIT_URL=web/assets/canvaskit/ --release -d chrome

    打包命令

    flutter build web --web-renderer canvaskit --dart-define=FLUTTER_WEB_CANVASKIT_URL=web/assets/canvaskit/ --release 

    2.字体问题Flutter web默认使用Noto字体,一般电脑上都不会带有这个字体,所以会在线加载这个字体,导致加载缓慢还会产生乱码

    解决方案:使用自定义字体,把字体资源放到项目中,然后使用字体:

    flutter:
      fonts:
        - family: Raleway
          fonts:
            - asset: assets/fonts/Raleway-Regular.ttf
            - asset: assets/fonts/Raleway-Medium.ttf
            - asset: assets/fonts/Raleway-SemiBold.ttf
    

    3、去除无用的 icon 引用

    若只是个人网页之类的简单web项目,可以删除一些系统的资源包,pubspec.yaml中cupertino_icons: ^1.0.2,uses-material-design: true注释掉,这样可以少加载这些资源文件。

    参考:

    10.1.1.flutter-web内网 - 简书

    解决 Flutter Web 加载canvaskit.wasm过慢的方法 - 简书

     https://sb.sb/blog/css-cdn/
    解决 Flutter Web 加载慢的问题_Amoour的博客-CSDN博客_flutter web 加载慢
    Flutter Web 常见问题及兼容性处理 - 掘金

    Flutter web 服务指定端口

    指定绑定IP    --web-hostname 0.0.0.0  

    指定绑定端口 --web-port 8888

    如: flutter run -d chrome --web-port 8888  --web-hostname 0.0.0.0

    flutter web 的路径模式和hash模式

    参考:最小单元 flutter for webURL导航与hashtag(#)的处理 - 简书

    flutter web开发遇到的问题

    1.flutter web项目上线后,点击刷新按钮(F5)报错404问题(使用nginx)

    原因:我项目中使用的是路径模式,在刷新页面(或单个页面链接单独访问)时将会请求当前的链接,而Nginx无法找到对应的页面

    解决:使用Nginx配置,让所有路由(url)下的页面重写到 index.html即可,在Nginx配置文件nginx.conf中加入如下配置。(index.html根据实际页面配置)

    location / {
    
      try_files $uri $uri/ /index.html;
    }
    

    参考:Vue项目上线后,点击刷新按钮(f5)报错404的问题(使用nginx)_Honins的博客-CSDN博客_vue项目f5刷新404

    2.文字不能选择

    解决:使用SelectableText

    3.图片不能拖拽(暂时没解决)

    4.标题栏自带的返回按钮

    解决:系统的AppBar(
            title: Text('景区购票'),
            automaticallyImplyLeading: false,//去掉自带的返回按钮
          )

    参考:flutter web遇到的坑 - HemJohn - 博客园

    展开全文
  • 大巧不工Web前端设计修炼之道.pdf

    千次下载 热门讨论 2012-12-24 15:31:21
    《大巧不工:Web前端设计修炼之道》以Web前端设计的流程为主线,以前端设计的方法和原则为基础,围绕原型设计、模型设计、可用性设计、一致性设计和以用户为中心的设计等关键技术探讨了前端设计的规范、技巧与最佳...
  • Web3到底是什么?

    千次阅读 2022-02-07 16:19:11
    Web3——加密货币持有者喜欢称之为的 Web 3.0——它是一个只有非常模糊定义的热门流行语。每个人都浅显的认为它是互联网基于区块链进一步发展的相关事物,但除此之外,它到底是什么? 然而,围绕 Web3 的意义和前景...

    本文原作者 Max Parasol

    编译 黑色马里奥

    Web3——加密货币持有者喜欢称之为的 Web 3.0——它是一个只有非常模糊定义的热门流行语。每个人都浅显的认为它是互联网基于区块链进一步发展的相关事物,但除此之外,它到底是什么?

    然而,围绕 Web3 的意义和前景的对话在加密社区中变得非常流行。这个词同样被大公司抛出,试图在这个领域发力,同时避免“加密”的负面含义。

    但是,如果没有广义的定义,就无法对其进行正确评估。

    加密货币领域,较为有影响力的Cobie是嘲笑Web3 缺乏细节的人之一:

    “尽管网络中有大量的关于它的解释,但少有人真正认识到Web3 是什么。Web3 是一个骗局还是未来、Web3 正在标记世界、Web3 是 VC 退出流动性、Web3 只是加密的另一个称号,如何看待取决于你属于哪个阵营,你懂的。”

    他补充说:“即使是加密社区也无法确定比特币是否是 Web3。”

    就像加密中的许多重要术语一样,一位重要的早期加密思想家创造了这个短语,社区已经有几年的时间来弄清楚它的含义。在不同的意识形态和商业现实的驱动下,有很多逆向工程。

    越来越清楚的是,Web3 不仅仅是一个简单的想法。这是一系列的想法。它可以说是在 2014 年以太坊联合创始人 Gavin Wood 的一篇博客文章中首次提出的。他在文中表示,Web3 可以预见地绕过地缘政治数据边界,他的定义包括“去信任交易”作为其技术堆栈的一部分。Wood 继续创建 Web3 基金会和 Polkadot 网络,以成为 Web3世界最为可靠的基建。

    2013 年的 Etheruem 白皮书更让“信仰者”有机会想象 DAO 可能是什么样子。

    Web3 现在充斥着各种概念:主权数字身份、免审查数据存储、由多个服务器划分的数据以及其他更为超前的想法,例如去中心化自治组织。这些不同的概念和想法交织着关于“Web3”运动及其可行性的讨论。

    知名区块链领域作者Cobie开始将Web3与更多的概念联系起来,他认为Web3 应该包括用户自己的内容、数据进行“权力下放,并且实现“价值所有权”。

    然而,像许多人一样,他对乌托邦式未来的前景持怀疑态度,并指出如果加密货币创始人太富有而不再关心新网络,他不会对此感到惊讶,新兴网络更多的是“新兴权贵”们,基于你在Cardano上购买了一个小额分期支付,且可以操控你的电动牙刷的NFT之上建立的(意指加密货币行业的乱象,这些新权贵们坐收渔利)。

    高度的批判

    有许多批评者认为Web3 的概念不切实际或无法实现。像 Moxie Marlinspike(sslstrip 和 Signal/TextSecure 的创建者)这样的批评者永远不会看到人们运行自己的服务器的那一天,正如Web3所想象的那样。他在 1 月初的一篇评论文章中认为,协议(DAPP)比平台更难创建。

    此外,文件存储协议 IPFS 等一些项目在服务器之间拆分数据,并允许用户选择在哪些司法管辖区之间共享数据,虽然这可能是真的,但完全去中心化是一个难以解决的问题。

    博主 suhaza回复Moxie 指出:

    “人们不想运行自己的服务器…已经出现了一些公司,它们将 API 访问权出售给他们作为服务运行的以太坊节点…几乎所有 DApp 都使用Infura或Alchemy来与区块链交互。事实上,即使你将像 MetaMask 这样的钱包连接到 DApp,并且 DApp 通过你的钱包与区块链交互,MetaMask 也只是在调用 Infura!”

    那么,这里有需要回答的问题:什么是 Web3?可行吗?真的会那么去中心化吗?

    人们对Web2表示失望,这推动了Web3发展?

    这是一个关于互联网如何被颠倒过来的故事……

    首先,有愿景、内容创建免费、每个人都可以访问。它被分散的开源信徒推广,包括互联网的发明者Tim Berners-Lee。

    然后现实则是,创建的内容以及数据,难以在价格与可访问性之间进行权衡。

    Web1 就像一个巨大的 Wikipedia 页面与庞大的 Craig’s List 结合在一起,它并没有广告,它并不允许用户进行登录或者基于此建立属于自己的私有网络空间。Web 2 是当前的算法定向广告时代,通常免费使用以换取您的隐私和数据。

    在这里插入图片描述

    Berners-Lee 对互联网的现状非常失望,因此,去中心化的 Web3反映了Berners-Lee 最初的愿景:“发布任何内容都不需要中央机构的许可……没有中央控制节点,因此,没有单点故障。” 他现在运行Solid,这是他自己的 Web3 数据存储游戏。

    因此,Web3 也将从数据隐私和去中心化服务器开始。

    Web3 从去中心化数据存储开始

    数据的去中心化存储是新兴 Web3 技术栈的关键组成部分。在 Web2 中,公司控制封闭的数据库,包括 Facebook、谷歌和其他常见的知名互联网公司都在不遗余力地囤积、控制和货币化他们收集的数据,但Web3 正在试图改变这一点。

    在这里插入图片描述

                         即使到了 2019 年,Web3 也正在以惊人的速度构建
    

    根据 Gartner 的数据,目前有五家公司控制着全球 80% 的云基础设施市场:亚马逊、谷歌、微软、阿里巴巴和华为,而Web3 试图打破这种现状。

    去中心化意味着通过给予参与者部分网络的直接所有权来增强这些权力结构,在 Web3 领域的很多项目中,用户都能够在开放的加密网络上真实拥有他们的数据。

    Filecoin 和 IPFS 等抗审查的 P2P 数据文件存储和数据共享应用程序引领了这一潮流,Web3 存储提供商(如 Filecoin)的一个共同特征是数据在网络中的多个节点中复制。

    然而,新兴的技术堆栈和意识形态仍然留下许多未解决的问题。

    授权用户控制自己的数据

    Verida 的首席运营官 Ryan Kris 正在这个领域建设,他在杂志中将“Web3 愿景”描述为“使人们能够控制自己的数据”。

    Verida 的目标受众是解决 Web3 堆栈中的软件开发工具包 (SDK)的问题:身份、消息传递、个人存储和数据互操作性。

    一套雄心勃勃的应用程序?“是的,但这是一项前沿技术,”他说,“一个没有围墙的花园。” 务实地说,他们不仅针对加密客户,而且目前正在为百慕大的去中心化医疗建立一个认证系统。

    但是,Web3 将如何通过使个人成为主权者来为我们带来更公平的互联网体验?Kris 在电信、金融、网络安全和区块链咨询领域拥有数十年的工作背景,他承认这是一个艰难的问题:

    “作为 Web3 可行性的一部分,还有一些值得商榷的商业问题,”他说。“锁定在中心化平台的个人数据如何被用户收回?如何激励初创公司构建产品和工具以实现这一转变?如何激励现有的二三线 Web2 公司转向 Web3 商业模式,以便与现有的市场领导者竞争?”

    Kris 指出,新技术也存在监管和实际问题:

    “在存储方面,IPFS 非常适合以冗余和分布式方式共享公共数据,但它并不是为保护私人个人数据而设计的。它以用户无法控制的方式分发,当无法保证数据存储在特定国家/地区时,这会引入监管问题。”

    每个项目也有不同程度的权力下放,如果 DApp 使用集中式存储,他们就不再被顽固分子视为“Web3”公司,但是,完全去中心化的技术很难构建。

    在这里插入图片描述

    更像Web2.5?

    一些人认为,我们目前实际构建的是 Web2.5,指的是加密原生但在运营中并未完全去中心化的业务。这种区别很重要,例如,NFT 本身可能存在于区块链上,但有与之相连的集中式数据存储库,例如 OpenSea,如果服务器出现故障,有价值的数据可能会丢失。

    Apollo Capital 加密分析师 David Angliss 指出,OpenSea 是 NFT 销售中最引人注目的平台,但它“并非完全由社区主导”。2021 年,OpenSea 还接受了主要的风险投资,并在纳斯达克 IPO 尝试失败,这让加密货币领域的人士非常懊恼。

    这就是 Web2.5 定义出现的地方。

    “Web3 不是加密领域的一部分。Web3 可以是任何使用区块链来抵抗审查的东西,包括 NFT 和 DeFi 游戏平台。”Angliss 表示。

    “Web3 将使用户能够对自己的数据和身份拥有主权,这在 Web2 数字环境中不存在。”

    “Web2 类似于封建主义,就像在封闭的生态系统中一样,由少数人统治。例如,Instagram 上一个诚实的用户拥有(帐户名称)“Meta”,Facebook 在此前重新更名后,Instagram不得不编造一个理由来暂停该无辜用户的长期帐户。Web3 可以阻止这种情况再次发生,在以太坊的名称服务中,如果我购买了“Ethereum.ens”,任何人都无法将其从我身上拿走。”

    Angliss 引用 OpenSea 作为 Web2.5 业务的示例,对于像 OpenSea 这样的大型企业来说,过于去中心化,就像完全抵制审查一样,在商业上可能是不受欢迎的。例如,OpenSea“促进了 NFT 的买卖,但是,在某些情况下,它也禁止出售被盗的无聊猿。”

    Web3(或者可能是 Web2.5,取决于所指的内容)被描述为互联网私有化的另一种方式。

    “仅仅因为它存在于加密生态系统中,但这并不能使其成为 Web3,”Angliss 说。最大的危险是我们只能看到集中的封闭生态系统,而不是蓬勃发展的 Web3。

    比 OpenSea 更加去中心化的社区主导平台正在兴起,包括 LooksRare 和 OpenDAO。

    LooksRare 甚至一直在对 OpenSea 进行“吸血鬼攻击”(以更大的激励措施窃取用户),这意味着 Web2.5 NFT 之王的 Web3 竞争对手可能会受到青睐。

    代币的引入为这些新的 NFT 平台,在如何建立客户忠诚度方面提供了更多选择。例如,OpenSea 收取费用,但没有一项是直接返回给社区的。LooksRare 对每笔基本销售收取类似的费用(每次交易2%的手续费),LOOKS 代币质押者赚取 100% 的交易费用。

    那么,也许 Web3 的时代即将到来?

    在这里插入图片描述

    到底是谁的数据?

    对 Web3 平台去中心化程度的持续批评,可能意味着我们仍旧处于这个领域的早期。新的商业模式和空间,如元宇宙和P2E游戏,意味着用户希望在去中心化平台上拥有和存放他们的游戏内资产和 NFT。比如 Arweave、Sia 和 Aleph.im 这样的 Web3 原生初创公司,就正在致力于此。

    Web3 真正去中心化需要创建新的链下模型,以消除云计算和 Web2.5 的定义。

    根据 2021 年 Messari 的报告:“今年,Arweave 和 Sia 成为了强大的竞争对手。” 他们试图保护 NFT 丢失的风险,因为中心化的服务器上的部分数据很容易被黑客入侵。

    另一个 Web3 云竞争对手 Aleph.im 寻求用替代服务网络取代云计算层。它是一个支持多个区块链的去中心化计算网络,通过消息协议与它们通信以检索和加密重要数据。

    Aleph.im 的创始人 Johnathan Schemoul 解释说:“Aleph.im 网络提供的解决方案是真正去中心化的替代方案,在最需要它的地方进行存储和计算。区块链并非旨在解决大容量存储或高性能计算,因为它们通常专注于共识和安全性。”

    这意味着大量数据通常存储在链下,增加了 OpenSea 等集中式数据库的数据存储风险。

    Aleph.im 使用户能够依赖区块链以及链下分散式云技术,来提供数字资产的真正所有权。

    “为了建立一个强大的去中心化网络,我们需要将去中心化扩展到处理共识和安全性的第 0 层和第 1 层之外。Aleph.im 生态系统的发展证明 Web3 可以去中心化,我们将继续努力。”

    Aleph.im 在 2022 年 1 月中旬筹集了 1000 万美元,例如,游戏公司 Ubisoft 将其网络用于其 NFT 存储,这是大众消费类型的游戏工作室,第一次将这种去中心化的所有权授予用户。

    重要的是,它还表明 Web3 可以以B2B的模式取得成功,即使普通消费者并不关心“去中心化”,并且加密趋势通常始于游戏。

    在这里插入图片描述

    代币经济学能否成为推动Web3的催化剂?

    不同的用户将会在不同的领域来采用一些Web3设施,但他们可能并不关心其是否去中心化。我们这个时代的问题更多的在于:用户在某种程度上更加重视隐私而不是便利、代币经济学能否对隐私与便利平衡的难题进行权衡?

    Holon Global Investments 董事总经理 Jonathan Hooker 认为,人类的互联网行为将会发生改变。他通过询问来开始他的 Web3 解释:“你拥有比特币吗?拥有和控制自己的自主财富让你感觉如何?” 接着他表示:

    “如果告诉你,你可以像控制比特币一样拥有和控制自己的数据会如何?”

    “商业模式必须找到潜在用户认为更重要的东西。这些用户又是否怀疑政府或将自己的健康记录放在他们无法控制的集中系统上?”

    “对于用户来说,在关键时刻拥、随时获取有这些医疗记录有多重要?Filecoin 和 IPFS 可以解决这些数据问题。”

    NFT 存储的竞争对于 Web3 的采用非常重要。Filecoin于 2021 年 4 月推出了 NFT.Storage,还提供 NFT 元数据和资产的免费链下存储。

    去国有化,以及区块链技术最重要的因素,是数据所有权的借出、质押或使用该数据的补偿领域。这是 Web3 的开创性的宗旨,Web3 通过代币化和与智能合约的复杂集成为用户提供价值。

    Hooker 说,代币经济学可以提供“超越互联网的价值体系”。

    然而,由于许多人只是通过 Facebook API 登录 Web2 应用程序而没有三思而后行,我们不得不质疑代币经济学到底能在多大程度上改变人类行为。互联网巨头公司比如谷歌、百度、腾讯和 Facebook(及其母公司 Meta)都已经拥有我们的数据,再进行整体的重塑是不是太晚了?

    也许不会。“数据就像水果,一开始它是新鲜的,但随着时间的推移它会腐烂,”他说。“大型科技公司关于我们的数据将有一个保质期。”

    Kris 同意 Hooker 的观点,“隐私不是问题,数据的价值才是问题”。人们接受他们将失去数据隐私,因此他们不妨将其标记化。人们很容易放弃他们的数据,为什么不为此获得报酬呢?

    “个性化数据提供在特定个性化环境中很有价值,例如,我会出售我的社交媒体数据,但不会出售我的健康数据。”

    密钥管理,是Web3 纯粹主义者和大众消费者都会面临的问题

    也有人对这种对数据代币经济学的乐观态度,持质疑态度。云计算公司 Box 的创始人 Aaron Levie 在指出其巨大潜力的同时,曾质疑Web3 模型的可行性:

    “为什么?因为数据几乎总是在应用程序的环境中工作、运行。Twitter 社交图谱、YouTube 频道、Spotify 播放列表、Airbnb 列表、Shopify 商店:这些都是在产品和 API 的背景下开发的,这些产品和 API 随着时间的推移迅速建立价值和信任。”

    Levie 进一步认为,代币经济学可能会使事情变得更加困难。“有了 Web3 的理想,我们可能已经将社区治理和代币经济学加入其中,这增加了一个新的协商向量。”

    这就是采用的难易程度问题:“这些是关于人类协调的难题,而不是关于软件或区块链的问题。” 许多人会选择 Facebook API 以方便使用,至关重要的是商业模式和 UX/UI 体验。

    例如,有一个常见的迷因,即加密忠实者很容易登录到 Web3,这是非常具有误导性的。它类似于:在 Web1 中有用户名和密码。在 Web 2 中,您可以通过 Google、Facebook 或 Twitter API 登录,而在 Web3 中,您只需连接您的钱包。例如,登录 MetaMask 并使用以太坊付款。

    但事实上,Levie是对的。这个模因忽略了区块链密钥管理的压力。即使是经验丰富的加密货币人士也会时不时地“心脏病发作”,更不用说新手了。

    初创公司创始人 Kris 认为:“Web3 需要更好的用户体验,公钥密码学是一种不同的登录方式,需要改进。对于用户来说,如何对密钥进行恢复?”

    而且,在这个阶段,任何可能的解决方案很可能都不是 100% 去中心化的。因此,Web3 密钥管理还有改进的空间。“一旦有人失去对密钥的控制,它就不再是 Web3,”Angliss 说。

    因此,完全分散的密钥管理对于 Web3 纯粹主义者来说仍然是一个主要问题。

    在这里插入图片描述

    2022年会是Web3元年吗?

    Web3 在被主流接受之前需要先解决各种问题。重要的是,它需要比 Web2.5 更好、更便宜——或者具有其他显着优势。

    在不牺牲去中心化协议的情况下实现可扩展性,仍然是 Web3 的明确目标。但是,去中心化很难,而中心化服务在很多方面,似乎都更加友好用户。

    以太坊联合创始人 Vitalik Buterin 本人最近表示,这就是为什么无论是中心化的Binance平台,还是Binance的交易业务在某些地方胜过以太坊支付,因为它们无需经过 12 次验证即可处理。

    谈到非常高的 Etheruem 汽油费,他接着说:“我确实认为很多人关心去中心化,但如果去中心化成本为每笔交易 8 美元,他们就不会接受去中心化。”

    “为了让区块链真正成为人们将要用于主流应用程序的东西,它必须便宜……不是按照 2014 年巨鲸购买加密货币的标准,但对于不断进入到区块链中的人来说,它必须便宜”

    就目前而言,Web3 似乎仍然是一个理想的概念,受可扩展性、代币经济学、主流采用和 Web3顽固信徒之间的交叉影响。

    就像很多加密货币历史一样。

    但是,Web3仍旧具备相当的发展空间。

    展开全文
  • CTFShow web1-7——CTF秀WEB模块解题思路

    万次阅读 多人点赞 2021-09-14 21:26:28
    CTFShow WEB模块详细通关教程, 受篇幅所限, 通关教程分为上下两部分, 第一部分为1-7关, 第二部分为8-14关, 本篇博客为1-7关的通关教程, 从解题思路和所用到的知识点两个方面进行讲解 CTFShow web1-7关详细教程解题...
  • 无懈可击的WEB设计第二版.pdf

    热门讨论 2012-06-15 20:23:07
    《无懈可击的Web设计:利用XHTML和CSS提高网站的灵活性与适应性》是Web标准设计领域的公认专家Dan Cederholm的倾力之作,向您描述了基于Web标准的设计策略,以适应各种各样的用户浏览方式。书中每一章的开头都给出了...
  • 浅谈 Web 3.0

    千次阅读 2022-03-24 10:40:26
    这篇文章的目的就是简单解释一下这个「Web 3.0」新概念。 为了更好地理解「Web 3.0」,我们可能需要从 「Web 1.0」和「Web 2.0」说起。 浅谈 Web 3.0「Web 1.0」「Web 2.0」「Web 3.0」中心化的问题?为什么「Web ...
  • java web 外文文献

    2015-06-17 23:42:35
    java web 外文文献 毕业论文参考文献
  • Java web web.xml详解

    万次阅读 2021-04-13 11:32:34
    1、启动一个WEB项目的时候,WEB容器会去读取它的配置文件web.xml,读取<listener>和<context-param>两个结点。 2、紧急着,容创建一个ServletContext(servlet上下文),这个web项目的所有部分都将共享...
  • 近日,中国证监会科技监管局局长姚前发表文章《Web3.0是渐行渐近的新一代互联网》,再度引发资本市场的热议,Web3.0真的来了吗?对企业和个人有资产有哪些重大影响?Web3.0时代互联网真的很安全吗?Web3.0时代:你在...
  • Web标准

    千次阅读 2021-09-01 18:48:53
    Web 标准     Web 标准也称网页标准,它由一系列标准组成,这些标准大部分由 W3C 负责制订,也有一些标准由其他标准组织制定的,如 ECMA 的 ECMAScript 标准等。 狭义的 Web 标准是指网页设计的...
  • Learn web scraping and crawling techniques to access unlimited data from any web source in any format. With this practical guide, you’ll learn how to use Python scripts and web APIs to gather and ...
  • java+web项目开发,javaweb开发完整实例源代码

    千次下载 热门讨论 2014-03-20 11:18:14
    深入体验java+web开发,javaweb开发完整实例源代码,里面包含使用说明和注解,共有十个不同类型的项目案例供你学习。
  • windows下web压力测试工具

    热门讨论 2013-10-31 02:26:09
    windows平台下web压力测试工具,有详细使用教程的。不清楚的话,可以留言给我!
  • Web3j使用教程(1)

    千次阅读 2022-03-01 17:14:46
    //获取客户端版本号,通常用来判断是否连接上 Web3ClientVersion web3clientversion = web3j.web3ClientVersion().send(); String clientVersion = web3clientversion.getWeb3ClientVersion(); System.out.println...
  • web3.js socket心跳重连,WebsocketProvider

    万次阅读 2021-10-24 14:37:22
    如果您的团队在生产中使用Web3JS,那么您必须意识到Web3JS中没有内置的重新连接功能来处理区块链断开或重新启动。 因此,通常,当连接断开时,NodeJS服务也需要重新启动才能再次连接到区块链。 代码: let ...
  • web 1.0-->web 2.0-->web 3.0

    万次阅读 2022-01-20 15:07:01
    web 1.0 少数人生产内容,多数人消费内容的时代,传播也呈现出晶莹对大众和一对多的格局 web 2.0 实现了信息传播的民主化,此事,任何人只要话五分钟就可以在互联网上用于一亩三分地(博客,个人主页) • 媒介的表达...
  • Web前端工程师修炼之道(第4版),完整扫描版

    千次下载 热门讨论 2015-12-29 10:00:17
    作者对本版内容做了全面更新和修订,涵盖Web前端开发所需的一切,无论是初学者,还是想提高已有技能的专业开发人员,本书都是理想的选择。 《Web前端工程师修炼之道(原书第4版)》主要内容: ■使用文本、链接、...
  • 大规模Web服务开发技术(PDF)-第1部分

    千次下载 热门讨论 2016-03-21 14:13:38
    第1章 大规模Web服务的开发定位——掌握整体 第2章 大规模数据处理入门 第3章 操作系统的缓存和分布式 第4章 数据库的横向扩展策略 第5章 大规模数据处理“实践”入门 第6章 压缩编程 第7章 算法实用化 第8章 Hatena...
  • 原文链接 : https://medium.com/iecse-hashtag/flutter-for-web-in-2022-a-deep-dive-96cf1b5695a9 原文的意思是深入...但是将跨平台的支持也扩展到 Web 上其实并不容易,而 Flutter 的解决方案就是 Flutter for W.
  • web安全深度剖析】1.1 Web安全简介

    千次阅读 2022-03-08 14:14:52
    web安全深度剖析】1.1 Web安全简介 【web安全深度剖析】 1. 服务器是如何被入侵的 渗透的必要条件是:攻击机通过服务器提供的端口服务和服务器进行正常的通信。过去的黑客攻击方式大多数都是针对目标进行的,现在...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 6,287,081
精华内容 2,514,832
关键字:

web