精华内容
下载资源
问答
  • web技术简介

    千次阅读 2019-07-10 17:38:47
    web技术简介 1 JAVASCRIPT 是一种网页编程语言,程序文件为文本文件,扩展名为.JS,嵌入在PC浏览器的网页中运行。可使用记事本、写字板等文本编辑器软件作为开发工具。 所有PC浏览器都支持JAVASCRIPT。 2 ...

    web技术简介

    1       JAVASCRIPT

    是一种网页编程语言,程序文件为文本文件,扩展名为.JS,嵌入在PC浏览器的网页中运行。可使用记事本、写字板等文本编辑器软件作为开发工具。

    所有PC浏览器都支持JAVASCRIPT。

     

    2       Flash

    是一种网页矢量动画编程技术,程序文件为编译后的二进制文件,扩展名为SWF,运行在客户端安装有Flash播放器(控件)的浏览器中。有专门的开发工具(Adobe Flash Professional、Flash Builder、Flex builder软件),编程语言为ActionScript。

    Flash技术已相当普及,支持Flash的浏览器全世界预计达到97%。

     

    3       REST

    REST (Representational State Transfer表述性状态转移),是一种Web服务的设计和开发方式(方法),降低开发的复杂性,提高系统的可伸缩性。支持HTTP  GET方式调用,请求形式为URL字符串,参数用“&”符号连接,应答结果格式多为JSON或XML字符串,样例见下表。

    使用REST方法开发的WEB服务可称为WEB服务(Web Service),但为了与SOAP协议定义的WEB服务区分开,常把此类WEB服务称为REST服务或REST API。

    开发语言可以是C#、Java、C++等,开发环境软件有Eclipse、Visual Studio等,REST服务运行在服务器侧。

    该服务调用简单、易于使用,可供客户端或服务端直接调用。

    样例:

    请求

    http://api.map.baidu.com/place/search?&query=%E9%93%B6%E8%A1%8C&bounds=39.915,116.404,39.975,116.414&output=json&key=yourkey

    应答(JSON格式)

    {

        "results":[ ],

        "status":"INVALID_KEY"

    }

    请求:

    http://api.map.baidu.com/place/search?&query=%E9%93%B6%E8%A1%8C&bounds=39.915,116.404,39.975,116.414&output=xml&key=yourkey

    应答(XML格式)

    <PlaceSearchResponse>

    <results/>

    <status>INVALID_KEY</status>

    </PlaceSearchResponse>

    注:JSON是一种轻量级的数据交换格式,广义上也可称为一种协议。

     

    4       SOAP

    SOAP:简单对象访问协议,是一种基于 XML的协议,用来在WEB服务上传输结构化的信息。使用SOAP协议定义的WEB服务通过HTTP  POST方式调用,请求格式为XML结构化字符串,应答结果格式为XML结构化的字符串。

    使用SOAP协议定义的WEB服务可称为WEB服务,但为了与REST方法开发的WEB服务区分开,常把此类服务称为SOAP服务。

    开发语言可以是C#、Java、C++等,开发环境软件有Eclipse、Visual Studio等,开发的程序运行在服务器侧。

    该服务协议较REST服务复杂,请求和解析报文的成本高,通常由服务端调用。

    样例:

    请求

    <?xml version="1.0" encoding="UTF-8" standalone="no"?>

    <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">

             <soap:Body>

              <p:getUserByName xmlns:p="http://www.exmaple.com">

                                         <username>tester</username>

                                         </p:getUserByName >

             </soap:Body>

    </soap:Envelope>

    应答

    <?xml version="1.0" encoding="UTF-8" standalone="no"?>

    <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">

    <soap:Body>

             <p:getUserByNameResponse xmlns:p="http://www.exmaple.com">

                                <name>tester</name>

                                <title>software engineer</title>

                                <company>IBM</company>

                                <email>tester@cn.ibm.com</email>

                                <description>testing!</description>

             </p:getUserByNameResponse>

    </soap:Body>

    </soap:Envelope>

     

    5       REST 与 SOAP关系图

    Web Service的类型

    REST

    SOAP

    请求方法

    HTTP GET

    HTTP POST

    请求格式

    URL字符串 (简单)

    SOAP  XML (复杂)

    应答格式

    JSON或XML (简单)

    SOAP  XML (复杂)

    调用者

    客户端、服务端

    服务端

     

    转载于:https://www.cnblogs.com/gis9/archive/2012/05/04/2482377.html

    展开全文
  • java web技术开发大全(最全最新)

    千次下载 热门讨论 2012-10-10 07:21:38
    2.1 Web技术的发展 2.2 JavaWeb技术 2.2.1 Java.Welb程序的基本组成 2.2.2 Java,Web程序的目录结构 2.2.3 JavaWeb程序的配置文件 2.3 MVC模式与MvC框架 2.3.1 JSP模型1和JSP模型2 2.3.2 Web应用程序...
  • 了解web技术

    千次阅读 2018-03-20 21:13:15
    web开发:做网站的,web开发技术是互联网应用中最为关键技术之一,互联网应用中包括网络技术,数据库技术web开发技术等。web服务器:又称www服务器,网站服务器,站点服务器,是将本地信息用超文本组织,为用户在...

    Web开发原理

    网站:是通过浏览器访问的应用。

    web开发:做网站的,web开发技术是互联网应用中最为关键技术之一,互联网应用中包括网络技术,数据库技术,web开发技术等。

    web服务器:又称www服务器,网站服务器,站点服务器,是将本地信息用超文本组织,为用户在网上搜索和浏览信息提供服务。

    web网页:储存在服务器端的文件,包含超文本标记语言HTML组成的文本文件,可称为超链接文件,又称为网页文件或web网页文件。

    视频格式:abc.mp4

    超链接:<a..../abc.mp4></a>

    了解web技术

    C/S模式

    C/SClient/server,客户机/服务器)方式的网络计算模式,工作分别由服务器和客户机完成。

    服务器负责管理数据的访问,对数据库进行检索和排序,此外还要对客户机服务器网络结构中的数据库安全层层枷锁,进行保护。

    客户机负责与用户交互,收集用户信息,通过网络请求服务器对诸如数据库、电子表格或文字处理文档等信息进行处理。

    C/S模式中,资源明显不对等,是一种“胖客户机”(干得多)或“瘦服务器”(干的少)结构。

    简单的C/S模式

    B/S模式

    B/SBrowser/Server,浏览器/服务器)方式的网络计算模式,是一种三层架构的计算模式

    B/S模式的三层应用

    两种模式的比较分析

    (1)开发和维护成本  C/S模式维护成本较高,对不同的客户端要开发不同的程序;B/S模式的客户端只需有通用的浏览器,所有维护与升级工作都是在服务器上执行的,大大降低了开发和维护的成本。

    (2)客户端负载  C/S模式的客户端负载重且随着应用系统的功能越来越复杂,客户端的用用程序也变得越来越庞大;B/S模式的客户端把事务处理逻辑部分分给了功能服务器,客户端只需进行显示即可。

    (3)可移植性  C/S模式移植困难,一般来说互不兼容;B/S模式客户端安装的是通用浏览器,故不存在移植性问题。

    (4)用户界面

    (5)安全性  C/S模式适用于专人使用系统,适用于安全性要求较高的专用应用软件;B/S适用于安全性要求较高的专用应用软件;B/S模式适用于交互性要求较多、使用人数较多、安全性要求不太高的应用环境。

    综上所述,B/S模式相对于C/S模式具有更多的优势。

    了解B/S模式技术

      1.CGI(Common Gateway Interface,通用网管接口)

    编写CGI程序设计语言有很多种,常用的有CPERLVisual C++等。

    2.ASP

    ASP(Active Server Pages)(动态服务器页面,是一种框架)是基于微软Window平台的动态页面开发技术。

    IISInternet Information Serve,互联网信息服务)用于建立NT系统的服务器。在NT的各个版本中都进行捆绑销售的组件,提供了WWW(Word Wide Web,万维网)FTP(File Transfer Protocol,文件传输协议)、SMIP(Simple Mail Transfer Protocol,简单邮件传输协议)等各种服务。

    3.PHP

    PHP(Personal Home Pages)是一种服务端的脚本语言,嵌入在HTML中书写。

    PHP的语法与C语言、Java语言语法极为相似,它具有大的函数库,主要原因是它是开源式的,源代码完全公开,每个使用PHP的程序员都可以加一些自己的东西,从而实现更多功能。PHP几乎支持所有的数据库。

    但是PHP对组件的支持不够,扩展性较差,常用它与免费的数据库系统MySQL一起构建中小型网B/S模式的网站或信息系统。

    2JSP

    JSP(Java Server Pages)java服务器页面,以Java语言为基础。

    JSP充分利用了Java技术的优势,具有极强的扩展能力和良好的收缩性。

    JDBC技术是(Java数据库连接的简称),JDBC就是封装了具体数据库连接方式等信息,然后提供一个“统一的”接口,方便Java程序联结数据库。

    JSP与其他B/S模式技术的比较

    JSP相对于其他B/S模式下的动态网页技术有诸多优势。

    1)跨平台性    JSP几乎可以在所有的操作系统平台运行。

    2)一次编写,到处运行

    3)编写容易,快速上手

    4)可重用性

    5)数据库连接技术

    了解HTML

    HTML(Hyper Text Markup Language,超文本标记语言)是一种描述网页的标记语言,不是编程语言(编程语言是用来向计算机发出指令的)。

    URL(Uniform Resource Locator,统一资源定位器),是Internet中用来唯一标志和定位资源的一种简单的命名机制。

    URL有三部分构成:协议、主机DNS名和文件名,协议名称通常为HttpFTPFile

    了解JavaScript

    JavaScript是一种脚本语言,属于Web语言,可直接放入HTML文档中,JavaScript使得网页的交互性更强,更加生动灵活。JavaScript可直接在Web浏览器中解释执行)

     

    展开全文
  • Java Web技术总结

    万次阅读 2018-06-29 18:09:36
    Java Web技术与Spring源码总结 这篇总结主要是基于我之前两个系列的文章而来。主要是把重要的知识点用自己的话说了一遍,可能会有一些错误,还望见谅和指点。谢谢 更多详细内容可以查看我的专栏文章: JavaWeb...

    这篇总结主要是基于我之前两个系列的文章而来。主要是把重要的知识点用自己的话说了一遍,可能会有一些错误,还望见谅和指点。谢谢

    更多详细内容可以查看我的专栏文章:
    #JavaWeb技术世界

    https://blog.csdn.net/column/details/21850.html

    #Spring与SpringMVC源码解析
    #https://blog.csdn.net/column/details/21851.html

    Servlet及相关类

    servlet是一个接口,它的实现类有GenericServlet,而httpservlet是GenericServlet的一个子类,一般我们都会使用这个类。

    servletconfig是用于保存servlet配置信息的数据结构,而servletcontext则负责保持servlet的上下文,web应用启动时加载web.xml信息于servletconfig中。

    Jsp和ViewResolver

    jsp页面需要编译成class文件并通过tomcat的类加载器进行加载,形成servlet实例,请求到来时实际上执行的是servlet代码,然后最终再通过viewresolver渲染成页面。

    filter,listener

    filter是过滤器,也需要在web.xml中配置,是责任链式的调用,在servlet执行service方法前执行。
    listener则是监听器,由于容器组件都实现了lifecycle接口,所以可以在组件上添加监听器来控制生命周期。

    web.xml

    web.xml用来配置servlet和servlet的配置信息,listener和filter。也可以配置静态文件的目录等。

    war包

    waWAR包
    WAR(Web Archive file)网络应用程序文件,是与平台无关的文件格式,它允许将许多文件组合成一个压缩文件。war专用在web方面 。

    JAVA WEB工程,都是打成WAR包进行发布。

    典型的war包内部结构如下:

    webapp.war

    | index.jsp

    |

    |— images

    |— META-INF

    |— WEB-INF

          |   web.xml                   // WAR包的描述文件
    
          |
    
          |— classes
    
          |          action.class       // java类文件
    
          |
    
          |— lib
    
                    other.jar             // 依赖的jar包
    
                    share.jar
    

    tomcat基础

    上一篇文章关于网络编程和NIO已经讲过了,这里按住不表。

    log4j

    log4j是非常常用的日志组件,不过现在为了使用更通用的日志组件,一般使用slf4j来配置日志管理器,然后再介入日志源,比如log4j这样的日志组件。

    数据库驱动和连接池

    一般我们会使用class.forname加载数据库驱动,但是随着Spring的发展,现在一般会进行数据源DataSource这个bean的配置,bean里面填写你的数据来源信息即可,并且在实现类中可以选择支持连接池的数据源实现类,比如c3poDataSource,非常方便。

    数据库连接池本身和线程池类似,就是为了避免频繁建立数据库连接,保存了一部分连接并存放在集合里,一般可以用队列来存放。

    除此之外,还可以使用tomcat的配置文件来管理数据库连接池,只需要简单的一些配置,就可以让tomcat自动管理数据库的连接池了。
    应用需要使用的时候,通过jndi的方式访问即可,具体方法就是调用jndi命名服务的look方法。

    单元测试

    单元测试是工程中必不可少的组件,maven项目在打包期间会自动运行所有单元测试。一般我们使用junit做单元测试,统一地在test包中分别测试service和dao层,并且使用mock方法来构造假的数据,以便跳过数据库或者其他外部资源来完成测试。

    Maven

    maven是一个项目构建工具,基于约定大于配置的方式,规定了一个工程各个目录的用途,并且根据这些规则进行编译,测试和打包。
    同时他提供了方便的包管理方式,以及快速部署的优势。

    Git

    git是分布式的代码管理工具,比起svn有着分布式的优势。太过常见了,略了。

    Json和xml

    数据描述形式不同,json更简洁。

    hibernate和mybatis

    由于jdbc方式的数据库连接和语句执行太过繁琐,重复代码太多,后来提出了jdbctemplate对数据进行bean转换。

    但是还是差强人意,于是转而出现了hibernate这类的持久化框架。可以做到数据表和bean一一映射,程序只需要操作bean就可以完成数据库的curd。

    mybatis比hibernate更轻量级,mybatis支持原生sql查询,并且也可以使用bean映射,同时还可以自定义地配置映射对象,更加灵活,并且在多表查询上更有优势。

    个人公众号:程序员黄小斜

    微信公众号【程序员黄小斜】新生代青年聚集地,程序员成长充电站。作者黄小斜,职业是阿里程序员,身份是斜杠青年,希望和更多的程序员交朋友,一起进步和成长!专注于分享技术、面试、职场等成长干货,这一次,我们一起出发。

    关注公众号后回复“2019”领取我这两年整理的学习资料,涵盖自学编程、求职面试、算法刷题、Java技术学习、计算机基础和考研等8000G资料合集。

    技术公众号:Java技术江湖

    微信公众号【Java技术江湖】一位阿里 Java 工程师的技术小站,专注于 Java 相关技术:SSM、SpringBoot、MySQL、分布式、中间件、集群、Linux、网络、多线程,偶尔讲点Docker、ELK,同时也分享技术干货和学习经验,致力于Java全栈开发!

    关注公众号后回复“PDF”即可领取200+页的《Java工程师面试指南》强烈推荐,几乎涵盖所有Java工程师必知必会的知识点。

    展开全文
  • Web技术整体架构

    千次阅读 2018-05-22 11:16:59
    市面上已经有相对比较成熟的技术,比如阿里开源的Dubbo(官方明确表示已经开始维护了),Spring家族的Spring Cloud,当然具体如何去实施,无论是技术还是业务方面都要有很好的把控。 Dubbo   SpringCloud 服务发现...

    题记

    工作也有几多年了,无论是身边遇到的还是耳间闻到的,多多少少也积攒了自己的一些经验和思考,当然,博主并没有太多接触高大上的分布式架构实践,相对比较零碎,随时补充(附带架构装逼词汇)。

    俗话说的好,冰冻三尺非一日之寒,滴水穿石非一日之功,罗马也不是一天就建成的,当然对于我们开发人员来说,一个好的架构也不是一蹴而就的。

    初始搭建

    前言

    工作也有几多年了,无论是身边遇到的还是耳间闻到的,多多少少也积攒了自己的一些经验和思考,当然,博主并没有太多接触高大上的分布式架构实践,相对比较零碎,随时补充。俗话说得好,冰冻三尺非一日之寒,滴水穿石非一日之功,罗马也不是一天就建成的,当然对于我们开发人员来说,一个好的架构也不是一蹴而就的。

    初始搭建

    开始的开始,就是各种框架一搭,然后扔到Tomcat容器中跑就是了,这时候我们的文件、数据库、应用都在一个服务器上。

    服务分离

    随着系统的的上线,用户量也会逐步上升,很明显一台服务器已经满足不了系统的负载,这时我们就要在服务器还没有超载时,提前做好准备。

    由于我们是单体架构,优化架构在短时间内是不现实的,增加机器是一个不错的选择。这时,我们可能要把应用和数据库服务单独部署,如果有条件也可以把文件服务器单独部署。

    反向代理

    为了提升服务处理能力,我们在Tomcat容器前加一个代理服务器,我一般使用Nginx,当然你如果更熟悉Apache也未尝不可。

    用户的请求发送给反向代理,然后反向代理把请求转发到后端的服务器。

    严格意义上来说,Nginx是属于Web服务器,一般处理静态HTML、CSS、JS请求,而Tomcat属于Web容器,专门处理JSP请求,当然Tomcat也是支持html的,只是效果没Nginx好而已。

    反向代理的优势,如下:

    • 隐藏真实后端服务
    • 负载均衡集群
    • 高可用集群
    • 缓存静态内容实现动静分离
    • 安全限流
    • 静态文件压缩
    • 解决多个服务跨域问题
    • 合并静态请求(HTTP/2.0后已经被弱化)
    • 防火墙
    • SSL以及http2

    动静分离

    基于以上Nginx反向代理,我们还可以实现动静分离,静态请求如HTML、CSS、JS等请求交给Nginx处理,动态请求分发给后端Tomcat处理。

    Nginx 升级到1.9.5+可以开启HTTP/2.0时代,加速网站访问。

    当然,如果公司不差钱,CDN也是一个不错的选择。

    服务拆分

    在这分布式微服务已经普遍流行的年代,其实我们没必要踩过多的坑,就很容易进行拆分。市面上已经有相对比较成熟的技术,比如阿里开源的Dubbo(官方明确表示已经开始维护了),Spring家族的Spring Cloud,当然具体如何去实施,无论是技术还是业务方面都要有很好的把控。

    Dubbo 

    SpringCloud

    • 服务发现——Netflix Eureka
    • 客服端负载均衡——Netflix Ribbon
    • 断路器——Netflix Hystrix
    • 服务网关——Netflix Zuul
    • 分布式配置——Spring Cloud Config

    微服务与轻量级通信

    • 同步通信和异步通信
    • 远程调用RPC
    • REST
    • 消息队列

    持续集成部署

    服务拆分以后,随着而来的就是持续集成部署,你可能会用到以下工具:Docker、Jenkins、Git、Maven。

    图片源于网络,基本拓扑结构如下所示:

    整个持续集成平台架构演进到如下图所示:

    服务集群

    Linux集群主要分成三大类( 高可用集群, 负载均衡集群,科学计算集群)。其实,我们最常见的也是生产中最常接触到的就是负载均衡集群。

    负载均衡实现

    • DNS负载均衡,一般域名注册商的dns服务器不支持,但博主用的阿里云解析已经支持
    • 四层负载均衡(F5、LVS),工作在TCP协议下
    • 七层负载均衡(Nginx、haproxy),工作在Http协议下

    分布式session

    大家都知道,服务一般分为有状态和无状态,而分布式sessoion就是针对有状态的服务。

    分布式Session的几种实现方式

    • 基于数据库的Session共享
    • 基于resin/tomcat web容器本身的session复制机制
    • 基于oscache/Redis/memcached 进行 session 共享。
    • 基于cookie 进行session共享

    分布式Session的几种管理方式

    Session Replication 方式管理 (即session复制)

    • 简介:将一台机器上的Session数据广播复制到集群中其余机器上
    • 使用场景:机器较少,网络流量较小
    • 优点:实现简单、配置较少、当网络中有机器Down掉时不影响用户访问
    • 缺点:广播式复制到其余机器有一定廷时,带来一定网络开销

    Session Sticky 方式管理

    • 简介:即粘性Session、当用户访问集群中某台机器后,强制指定后续所有请求均落到此机器上
    • 使用场景:机器数适中、对稳定性要求不是非常苛刻
    • 优点:实现简单、配置方便、没有额外网络开销
    • 缺点:网络中有机器Down掉时、用户Session会丢失、容易造成单点故障

    缓存集中式管理

    • 简介:将Session存入分布式缓存集群中的某台机器上,当用户访问不同节点时先从缓存中拿Session信息
    • 使用场景:集群中机器数多、网络环境复杂
    • 优点:可靠性好
    • 缺点:实现复杂、稳定性依赖于缓存的稳定性、Session信息放入缓存时要有合理的策略写入

    目前生产中使用到的

    • 基于tomcat配置实现的MemCache缓存管理session实现(麻烦)
    • 基于OsCache和shiro组播的方式实现(网络影响)
    • 基于spring-session+redis实现的(最适合)

    负载均衡策略

    负载均衡策略的优劣及其实现的难易程度有两个关键因素:负载均衡算法,对网络系统状况的检测方式和能力。

    1、rr 轮询调度算法。顾名思义,轮询分发请求。

    优点:实现简单

    缺点:不考虑每台服务器的处理能力

    2、wrr 加权调度算法。我们给每个服务器设置权值weight,负载均衡调度器根据权值调度服务器,服务器被调用的次数跟权值成正比。

    优点:考虑了服务器处理能力的不同

    3、sh 原地址散列:提取用户IP,根据散列函数得出一个key,再根据静态映射表,查处对应的value,即目标服务器IP。过目标机器超负荷,则返回空。

    4、dh 目标地址散列:同上,只是现在提取的是目标地址的IP来做哈希。

    优点:以上两种算法的都能实现同一个用户访问同一个服务器。

    5、lc 最少连接。优先把请求转发给连接数少的服务器。

    优点:使得集群中各个服务器的负载更加均匀。

    6、wlc 加权最少连接。在lc的基础上,为每台服务器加上权值。算法为:(活动连接数*256+非活动连接数)÷权重 ,计算出来的值小的服务器优先被选择。

    优点:可以根据服务器的能力分配请求。

    7、sed 最短期望延迟。其实sed跟wlc类似,区别是不考虑非活动连接数。算法为:(活动连接数+1)*256÷权重,同样计算出来的值小的服务器优先被选择。

    8、nq 永不排队。改进的sed算法。我们想一下什么情况下才能“永不排队”,那就是服务器的连接数为0的时候,那么假如有服务器连接数为0,均衡器直接把请求转发给它,无需经过sed的计算。

    9、LBLC 基于局部性的最少连接。均衡器根据请求的目的IP地址,找出该IP地址最近被使用的服务器,把请求转发之,若该服务器超载,最采用最少连接数算法。

    10、LBLCR 带复制的基于局部性的最少连接。均衡器根据请求的目的IP地址,找出该IP地址最近使用的“服务器组”,注意,并不是具体某个服务器,然后采用最少连接数从该组中挑出具体的某台服务器出来,把请求转发之。若该服务器超载,那么根据最少连接数算法,在集群的非本服务器组的服务器中,找出一台服务器出来,加入本服务器组,然后把请求转发之。

    读写分离

    MySQL主从配置,读写分离并引入中间件,开源的MyCat,阿里的DRDS都是不错的选择。

    如果是对高可用要求比较高,但是又没有相应的技术保障,建议使用阿里云的RDS或者Redis相关数据库,省事省力又省钱。

    全文检索

    如果有搜索业务需求,引入solr或者elasticsearch也是一个不错的选择,不要什么都塞进关系型数据库。

    缓存优化

    引入缓存无非是为了减轻后端数据库服务的压力,防止其"罢工"。

    常见的缓存服务有,Ehcache、OsCache、MemCache、Redis,当然这些都是主流经得起考验的缓存技术实现,特别是Redis已大规模运用于分布式集群服务中,并证明了自己优越的性能。

    消息队列

    异步通知:比如短信验证,邮件验证这些非实时反馈性的逻辑操作。

    流量削锋:应该是消息队列中的常用场景,一般在秒杀或团抢活动中使用广泛。

    日志处理:系统中日志是必不可少的,但是如何去处理高并发下的日志确是一个技术活,一不小心可能会压垮整个服务。工作中我们常用到的开源日志ELK,为嘛中间会加一个Kafka或者redis就是这么一个道理(一群人涌入和排队进的区别)。

    消息通讯:点对点通信(个人对个人)或发布订阅模式(聊天室)。

    日志服务

    消息队列中提到的ELK开源日志组间对于中小型创业供公司是一个不错的选择。

    安全优化

    以上种种,没有安全做保证可能都会归于零。

    • 阿里云的VPN虚拟专有网络以及安全组配置
    • 自建机房的话,要自行配置防火墙安全策略
    • 相关服务访问,比如MySQL、Redis、Solr等如果没有特殊需求尽量使用内网访问并设置鉴权
    • 尽量使用代理服务器,不要对外开放过多的端口
    • https配合HTTP/2.0也是个不错的选择 

    架构装逼必备词汇

    高可用

    • 负载均衡(负载均衡算法)
    • 反向代理
    • 服务隔离
    • 服务限流
    • 服务降级(自动优雅降级)
    • 失效转移
    • 超时重试(代理超时、容器超时、前端超时、中间件超时、数据库超时、NoSql超时)
    • 回滚机制(上线回滚、数据库版本回滚、事务回滚)

    高并发

    • 应用缓存
    • HTTP缓存
    • 多级缓存
    • 分布式缓存
    • 连接池
    • 异步并发

    分布式事务

    • 二阶段提交(强一致)
    • 三阶段提交(强一致)
    • 消息中间件(最终一致性),推荐阿里的RocketMQ


    队列

    • 任务队列
    • 消息队列
    • 请求队列

    扩容

    • 单体垂直扩容
    • 单体水平扩容
    • 应用拆分
    • 数据库拆分
    • 数据库分库分表
    • 数据异构
    • 分布式任务

    网络安全

    • SQL注入
    • XSS攻击
    • CSRF攻击
    • 拒绝服务(DoS,Denial of Service)攻击

    架构装逼必备工具

    操作系统

    Linux(必备)、某软的

    负载均衡

    DNS、F5、LVS、Nginx、OpenResty、HAproxy、负载均衡SLB(阿里云)

    分布式框架

    Dubbo、Motan、Spring-Could

    数据库中间件

    DRDS (阿里云)、Mycat、360 Atlas、Cobar (不维护了)

    消息队列

    RabbitMQ、ZeroMQ、Redis、ActiveMQ、Kafka

    注册中心

    Zookeeper、Redis

    缓存

    Redis、Oscache、Memcache、Ehcache

    集成部署

    Docker、Jenkins、Git、Maven

    存储

    OSS、NFS、FastDFS、MogileFS

    数据库

    MySql、Redis、MongoDB、PostgreSQL、Memcache、HBase

    网络

    专用网络VPC、弹性公网IP、CDN

    展开全文
  • Web技术的主要组成和工作原理

    千次阅读 2019-01-02 11:29:16
    一个web应用是受到多个步骤组成的, 1.本地计算机和远程服务器 本地计算机:用户自己浏览站点的本地机器 远程服务器:为客户端(用户)计算机提供各种服务的高性能计算机,主要功能是接受客户浏览器发送的请求,...
  • Java Web技术路线总结

    千次阅读 2017-10-12 22:06:52
    Java Web技术路线总结[TOC]2017/10/12 星期四 19:47:52 Edit by Core Chan 此总结仅用于个人学习,仅供参考。目前技能点: java SE除了swing/awt等图形化界面 jdbc api mysql 建议上面的技能点点完后再往下走。总体...
  • web开发框架技术有哪些?

    万次阅读 2018-11-07 16:07:30
    如果你是做Web开发的,Web框架一定会很熟悉,框架是Web架构开发中必不可少的工具,不仅可以提高开发效率,还能让开发项目更成熟,并且可以提升代码的可再用性,Web框架开发离不开相应的开发语言,以下是常用的Web...
  • Web开发技术发展历史

    千次阅读 2018-02-26 16:53:07
    Web的诞生 提到Web,不得不提一个词就是“互联网”。Web是World Wide Web的简称,中文译为万维网。“万维网”和我们经常说的...抛开那些纷繁凌乱的商业化概念,回归技术本身,互联网就是指通过TCP/IP协议族互相连接...
  • Web挖掘技术

    万次阅读 2017-09-26 16:39:47
    Web 数据挖掘是一项综合技术,通过从Internet 上的资源中抽取信息来提高Web 技术的利用效率,也就是从Web 文档结构和试用的集合中发现隐含的模式。 数据挖掘涉及的学科领域和方法很多,有多种分类法。
  • JavaScript的角色巨变和Web技术的发展

    千次阅读 2013-07-01 15:13:25
    JavaScript性质和地位的天翻地覆,正是Web技术飞速变化的印证。 最初职业程序员轻视JavaScript,认为它和C、Java这些真正的开发语言相比只是脚本小毛孩(Script Kids)的玩具。那时候,互联网才刚刚从单纯提供静态...
  • 系统讲解微信公众平台订阅号、服务号官方列出的全部功能接口,包括:自定义菜单、个性化菜单(按需定制菜单)、群发消息、客服消息(有限次消息推送)、模板消息接(无限次消息推送)、微信网页开发(微信WEB开发、...
  • WEB技术的四层(五层)结构

    千次阅读 2014-12-15 10:40:12
    所谓四层架构的分法,就是想把软件设计师工作量降下来,减少重复性的代码,提高开发速度,是软件有相当好的可维护、易扩展,这种四层架构对很多人开发同软件来说,可以有个清晰的思路。我把系统分成表示层(UI)、...
  • WEB开发技术 知识点总结

    万次阅读 多人点赞 2018-05-11 00:10:58
    WEB开发技术 知识点总结第一章:(填空判断)1、什么是WWWWWW是World Wide Web的缩写,中文译名“万维网”。Web是Internet提供的一种服务,是基于Internet、采用Internet协议的一种体系结构。2、Web三要素:统一资源...
  • web前端技术路线

    千次阅读 2018-10-21 21:36:59
    前端技术路线 第一阶段: JS基本特效:tab、导航、整页滚动、轮播图、JS制作幻灯片、弹出层、手风琴菜单、瀑布流布局、滚动事件、滚差视图。 JS高级特征: 正则表达式、排序算法、递归算法、闭包、函数节流、...
  • Web开发技术架构图

    千次阅读 2020-09-24 21:07:05
    Web开发技术架构图 大型web系统架构动态应用,是相对于网站静态内容而言,是指以c/c++、php、Java、perl、.net等服务器端语言开发的网络应用软件,比如论坛、网络相册。1、学习Web开发原理,包括MVC/MTV等Web框架; 2、...
  • web开发技术栈(框架)总结

    万次阅读 多人点赞 2020-06-30 11:52:15
    Bootstrap-Layui-Amazeui-jQuery-vue-react-AngularJS-ci-Thinkphp-Yii-Laravel-Node-Django-springMVC-apache-nginx-mysql...近两年,小编业余时间从零开始摸索web开发,把web开发常用的技术和框架大概都摸了摸看了...
  • web前端主要技术概述

    万次阅读 多人点赞 2018-03-18 13:10:26
    web前端主要技术概述 参考资料: 2018 Web 开发者路线图 2017年前端框架、类库、工具大比拼 本文主要是介绍部分主流和新兴的web前端技术,希望能帮助想学web前端的小白,理清其技术学习路线。 首先有些技能是...
  • web项目技术选型

    千次阅读 2016-01-13 22:25:42
    应用服务器:简单的说,能实现动态网页技术的服务器叫做应用服务器 Tomcat占有率最高>jetty(最大优点是嵌入式) resin(据说比tomcat快) 个人免费, 商业收费 JBoss、weblogic、websphere:真正的应用...
  • Java Web开发技术方案

    千次阅读 2017-07-14 08:58:07
    Java Web开发技术方案 Java Web开发分前端、后端: Java Web前端: —就是在Web应用中用户可以看得见碰得着的东西。包括Web页面的结构、Web的外观视觉表现以及Web层面的交互实现。 —前端开发主要使用ajax/jQuery...
  • web渗透测试

    千人学习 2018-05-08 18:13:51
    Web渗透测试教程,该课程侧重于讲解Web安全,并通过实验详细分析常见的十种Web漏洞、漏洞利用过程等。
  • Web开发技术发展历程

    千次阅读 2017-02-09 18:05:50
    Web开发技术发展历程 互联网就是指通过TCP/IP协议族互相连接在一起的计算机网络。而Web是运行在互联网上的一个超大规模的分布式系统。 Web设计初衷是一个静态信息资源发布媒介,通过超文本标记语言(HTML)描述信息...
  • web前端三大核心技术

    千次阅读 2019-09-08 20:20:59
    web前端三大核心技术 根据 W3C 标准,一个网页主要由三部分组成:结构、表现和行为 结构​ 超文本标记语言:HTML(Hyper Text Markup Language) HTML用于描述页面的结构 html5:是一门标记型语言,主要由一些具备...
  • Web服务器技术的优缺点有哪些?

    千次阅读 2018-03-16 14:44:03
    WebService也称为XML Web Service,WebService是一种可以接收Internet或者Intranet上传递过来的请求,是轻量级独立的通讯技术,具有很好的跨平台性能,因此使用Web Service有许多优点:1. 跨防火墙的通信Web Service...
  • Web前端常用的十种技术

    万次阅读 2019-06-26 16:42:23
    Web前端应用十种常用技术,随着JS与XHTML的应用普及,越来越多的web界面应用技术出现在网站上,比如我们常见的日历控件,搜索下拉框等,这些web界面应用技术大大的丰富了网站的表现形式,本文将为您精心推荐十种最...
  • Web前端开发作为前端技术的重要组成,一直占据着重要的地位,整个IT行业内有大量的前端开发从业者,随着移动互联网、大数据和人工智能的发展,目前前端的知识体系也在逐渐丰富。 熟悉Web前端工作的小伙伴都知道Web中...
  • JAVA WEB开发实战

    千人学习 2018-06-07 09:45:31
    走进JSP、掌握JSP语法、JSP内置对象、Servlet技术、综合实验(一)——JSP使用Model2实现登录模块、EL表达式语言、JSTL核心标签库、综合实验(二)——结合JSTL与EL技术开发通讯录模块、JSP操作XML、JavaScript脚本...
  • Web开发技术课程设计报告

    千次阅读 2019-05-21 20:15:05
    实验名称:手机销售网 课程名称:JSP程序设计 一、实验步骤 安装jdk,配置环境变量 下载tomcat服务器 安装mysql数据库及navicat管理工具 ...安装eclipse,编写pojo类、HttpServlet、jsp页面,引入mysql驱动 ...
  • 主流web前端技术框架有哪些?

    万次阅读 2018-11-07 16:08:21
    Web架构是为解决Web开发中开放性问题而设计的具有一定约束性的支撑结构,使用框架可以帮助快速实现Web开发,并解决开发过程中遇到的常规问题!以下是2018年常用的Web框架: 1. Bootstrap Bootstrap是一款很受欢迎...
  • python flask web开发入门与项目实战

    千人学习 2019-12-15 19:02:04
            Web网站发展至今,特别是服务器... 综上所述,Flask 是一个用Python语言编写的Web微框架,可以让开发人员快速开发各种Web应用        课程预计每周更新两节

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,194,392
精华内容 477,756
关键字:

web技术