精华内容
下载资源
问答
  • 网 用golang编写的Web后端
  • * * * * * 企业网站开发技术 第五节 Web后端技术 经济与管理学院 刘志鹏 Web前端技术学习路线图 /view/link/57d28d0ee4b0942d7a89c9dd 目录 1静态和动态网页 2Web后端技术 3Java工程师 4JavaWeb开发技术 操作系统 ...
  • 这是一个企业Java Web后端项目 该项目使用SSM(Spring + SpringMVC + Mybatis)模型构建。 该项目包含几个模块: 用户模块 产品模块 类别模块 购物车模块 订单模块 支付模块(支付宝) 运输模块 该项目使用SSM,...
  • 一文看懂Web后端开发

    千次阅读 多人点赞 2021-03-20 23:53:34
    一文看懂Web后端开发 前言 由于网络上系统地介绍后端开发的文章实在太少,而最近有恰巧有许多同学问我“什么是后端开发?”、“你为什么喜欢后端开发?”、“做后端都需要学什么?”,那么我们就来讲一讲,到底什么...

    一文看懂Web后端开发

    前言

    由于网络上系统地介绍后端开发的文章实在太少,而最近有恰巧有许多同学问我“什么是后端开发?”、“你为什么喜欢后端开发?”、“做后端都需要学什么?”,那么我们就来讲一讲,到底什么才是后端开发。

    定义

    后端开发Back-End Development,也称服务端开发服务器端开发等)是创建完整可运行的Web应用服务端程序(服务端程序和资源合称为后端,即在服务器上运行的、不涉及用户界面的部分)的过程,是Web应用程序开发的一部分。后端开发者使用JavaGolang等语言及其衍生的各种框架、库和解决方案来实现Web应用程序的核心业务逻辑,并向外提供特定的API,使得Web应用能够高效、安全、稳定地运行。

    说人话!

    好吧,如果你看了定义仍然很懵,那我就用一些非常易于理解的表达形式来说一说“什么是后端开发”。虽然这些表述可能并不严谨或完全正确,但是我相信这样一定能使你明白什么是后端开发。

    这里我们拿前端来类比一下,因为我相信绝大多数看到这篇文章的人都已经对“什么是前端开发”、“什么是前端”有一定了解了:

    1. 前端就相当于我们的肉体,后端就相当于我们的灵魂和思想;
    2. 前端是如何操作游戏,后端是具体的游戏规则;
    3. 前端是用户能看到的,后端是用户看不到的;
    4. 前端是跑在浏览器上的,后端是跑在服务器上的;
    5. 前端采集用户的输入,后端处理用户的输入;
    6. 前端开发是写代码给用户看,后端开发是写代码给服务器看。

    是不是这样一讲就明白了?那我们接着往下看。

    具体职责

    1. **实现Web应用程序的实际业务逻辑。**即:实现Web应用程序的具体功能(如注册、发表和查询信息等)或Web应用程序在服务端执行的具体操作。这是后端开发这项工作的主要内容;
    2. **使用API和创建API。**后端需要向前端提供前端所需的数据,也需要使用第三方API来完成业务逻辑(如完成某个功能需要通过API调用其他应用、在使用框架进行开发时需要使用语言和框架的API、操作数据库时需要使用数据库或ORM框架的API等)。因为在后端开发的过程中经常需要与API打交道,所以有人也把后端开发称为“API开发”,就像有些人将前端称为“GUI开发”一样;
    3. **优化。**在用户量达到一定程度后,就会出现诸如响应慢等各种问题(不理解的话想想你们大学的选课系统);同时,随着代码行数的增多,许多架构上的缺陷可能也会随之暴露出来,如代码逻辑混乱、模块划分不正确等。此时就需要后端开发人员对Web应用程序进行优化,如重构、分布式部署、优化业务逻辑、单体应用拆分成微服务等;
    4. **架构设计。**虽然一般只有高级的后端开发人员和架构师才需要关注架构问题,但是架构设计是后端开发中非常重要的一环,因为它决定了如何组织代码、某个模块负责解决什么样的问题、系统的扩展性和可维护性如何、业务逻辑如何进行组织等,也会一定程度上影响到业务逻辑的具体实现(比如微服务和单体架构这两种架构下,同一种业务逻辑的实现可能完全不同)。

    特征

    1. 后端是工作在服务器上的,负责通过API向前端或其他系统提供其所需的信息(如数据等);
    2. 后端开发实际上是开发Web应用中对用户不可见的部分(如核心业务逻辑、数据库等),大多数的后端开发都是不涉及用户界面的(除了在前后端不分离的架构中将前端的静态页面通过模板引擎改造成动态页面时);
    3. 通常情况下,一个Web应用的绝大多数代码都属于后端代码,因为后端承担了Web应用实际的业务逻辑;
    4. 后端开发的压力通常比前端开发要大,因为后端是Web应用的“灵魂”,它影响着Web应用的方方面面,除了业务逻辑之外还需要考虑安全性、稳定性、可维护性、可扩展性、伸缩性等问题。

    技术

    1. 程序设计语言。许多语言都可以用于后端开发,比较流行的是JavaGo。例如我所使用的就是Go语言,也曾经使用过Java。此外,由于后端开发中经常需要和数据库打交道,所以作为后端开发者,还需要懂SQL语言(如果使用了NoSQL的话,也需要懂NoSQL数据库的语言);
    2. 数据库。数据库作为一种简单易用的持久化机制,可以让用户的信息不因为断电等故障而丢失,Web应用开发中经常需要用到数据库,甚至许多简单的Web应用本质上都只是“数据库的可视化系统”,也因为绝大多数简单的业务逻辑本质上都只是对数据库的增删改查(即CRUD);
    3. 框架、库和解决方案。想要高效率地开发Web应用,框架、库和解决方案是必不可少的,比如MVC框架、ORM框架、RPC框架、微服务开发框架、云基础设施(如Service Mesh、容器编排工具等)、运行时环境/容器(如Docker)、消息队列(Message Queue,MQ)、日志收集和分析工具等;这部分有一些框架是可以跨语言通用的,比如gRPC(RPC框架)、Istio(Service Mesh),也有一些是某种语言专用的,如Spring Cloud(微服务开发工具,JVM技术栈专用)、Gin(MVC框架,Go语言专用);
    4. 架构和指导思想。架构是后端开发中非常重要的一部分,作为一名后端开发者需要了解常见的架构,如三层架构、SOA、微服务架构、六边形架构等,还需要了解常用于后端开发中的指导思想,如设计模式、MVC模式、DDD、CQRS/ES等;
    5. 包管理工具/项目管理工具。因为后端开发中经常要用到各种框架和库,所以用于管理这些框架和库的管理工具是非常重要的。每一门语言都有自己的包管理工具,如Java的Maven,Go语言的go mod等;
    6. 基础知识。不管是前端开发还是后端开发,都需要对操作系统、计算机网络、数据结构等基础知识有一定了解,还需要了解对应语言的编码规范、重构等知识,这可以帮助你理解框架和库,也能帮助你写出更高质量的代码;
    7. 开发方法。实际上这个也可以说是属于指导思想的一部分,包括CI/CD、敏捷开发、DevOps等;
    8. 版本管理工具。相信我,几乎没有人能离开这玩意。最常用的是Git

    误解

    有不少人其实对后端开发误解很深,以下是一些常见的误解:

    1. 后端开发就是CRUD/后端开发太简单了;
    2. 不同系统的后端面临的问题高度相似;
    3. 后端开发很枯燥;
    4. 后端的逻辑比前端复杂;
    5. 对于后端开发者来说,设计业务逻辑是一件很简单的事情;
    6. 后端开发的工作太单一了/后端不是一个综合的领域;

    这些误解有时候会劝退一些有意从事后端开发的同学,我们现在就来澄清一下这些误解:

    1. 我不否认很多简单的Web应用确实就是CRUD,但是绝大多数的Web应用都不仅仅是CRUD。至于“太简单了”,能说出这话的人一定没做过后端,或者只做过CRUD,或者是超级大牛。如果不是超级大牛的话,请说这话的人写一个能撑住五万并发的秒杀系统出来,并做压力测试,然后再看看这句话;另外,后端开发是一个非常综合的领域,既有非常抽象的架构和指导思想,又有具体的解决方案和业务逻辑,还涉及到许多计算机底层问题(如多线程、网络、I/O等)。并且,虽然后端技术稳定,但也不至于学了点东西就可以到哪里都通吃,例如,如果你没听说过云原生、微服务、Serverless等新技术的话,那说明你已经很久没有跟上后端技术的发展了;以及,如果你现在还在用JSP,那我敢肯定你一定没有意识到诸如前后端分离之类的新问题;
    2. 这个说法也完全不对。不同的系统所面临的具体问题是完全不同的。先不说对一个具体的需求可能有很多种不同的解决方案(如针对单点登录(Single Sign On,SSO)问题就有长连接(虽然我没见过落地案例)、共享Session、JWT等方案),有时候甚至当你拿到一个需求时,可能连要解决什么问题都搞不清楚,这也就是为什么诸如DDD这样的系统分析方法一直备受关注,且重构也经常在各种规模的Web应用中都引起重视,因为用户需求往往不是那么明确,可能会引导我们做出错误的设计;
    3. 记住,枯燥的是CRUD,而不是后端。后端开发的技术含量实际上是非常高的,也非常有意思,充满了未知与挑战。像微服务、云原生、DDD、CQRS/ES、高并发、负载均衡、缓存、消息队列、多线程、微服务监控、Service Mesh等技术,每一项都值得我们去研究,而这些技术中有很多都是在大型Web应用中被频繁使用的,如果你真正了解后端开发的话,是绝无可能说出“后端开发很枯燥”这样的话的。请记住,并不是不涉及界面的工作就一定很枯燥;
    4. 在大多数的系统中是这样的,但是有些Web应用的前端逻辑复杂程度可能不亚于后端,甚至可能还会超过后端,比如像石墨文档这样的多人协作文档系统,还有ProcessOn这样的在线绘图系统,其前端逻辑可能都是非常复杂的;
    5. 参见2。能说出这话的人一定没重构过一个“大泥球”一样的应用,也没设计过一个用户需求非常模糊的系统(比如用户只给了一条需求:做一个CMS(内容管理系统),你觉得简单你可以来试试,然后用它一个月,如果你不是个有经验的后端开发者的话,我相信你一定会被你自己所写的这个系统逼疯,恨不得将它完全重构);
    6. 参见1和2。如果后端开发还不综合的话,那什么才是综合的呢?

    我不否认做一个只会CRUD的后端开发者很简单,但既然对后端开发感兴趣,那我们就要有更高的志向,不能把自己框死在CRUD里。

    这里送给各位未来的后端开发者一句话:“我等采石之人,当心怀大教堂之愿景”。如果自己一个人完成一个简简单单的CRUD项目,你可以有自己的想法,例如在其中应用DDD和CQRS,或不断地优化它以达到最佳状态;如果迫于工作经验而不得不CRUD,你也可以用业余时间去提升自己的技术,让自己有更光明的未来。

    什么样的人适合做后端?

    说了这么多,那什么样的人才适合做后端开发这份工作呢?

    1. 讨厌写用户界面或与用户界面打交道的人。有很多人是因为讨厌写界面(尤其是CSS这种反人类的东西)才来做后端开发的。这里没有界面,讨厌与用户界面打交道的人不妨尝试一下后端开发;
    2. 细心的人。后端开发实际上比前端开发更需要细心。就如前文所述,后端是Web应用程序的“灵魂”,后端开发中的许多问题都决定着Web应用的“生死存亡”,尤其是数据校验多线程/多进程异步编程事务/分布式事务与第三方系统的交互等,这些问题有非常非常多的细节,且既复杂又非常重要,一旦在细节上出现问题(如数据校验不完全或加锁解锁的逻辑出现错误),轻则出现错误的数据或业务逻辑不能正常运行,重则直接导致整个Web应用挂掉或出现安全问题(如数据校验不完全导致的文件上传漏洞、函数使用错误导致的远程命令执行漏洞等)。所以如果你想从事后端开发,那足够细心绝对是一个必要的条件;
    3. 喜欢与机器打交道多于与人打交道的人。与前端开发是“写代码给人看”的不同,后端开发是“写代码给服务器看”(或者说给前端/第三方系统看)的。虽然这两个说法都不太严谨,但是后端开发更多的就是与服务器打交道(如降低资源使用率、提高Web应用程序的运行效率等等),而不是与人打交道(如提高页面的美观程度、思考用户的使用逻辑和心理等等);
    4. 想编写实际的业务逻辑的人,或喜欢算法和逻辑的人。前端的逻辑更多的是交互逻辑,如点击某个按钮应该弹出什么窗口、怎么把数据渲染成用户想要看到的页面等,而后端的逻辑更多的是实际的业务逻辑,如完成某个功能需要怎样做、请求某个API应该返回什么样的数据等。如果你和我一样写前端时因为总是接触不到实际的业务逻辑而感到不爽,那么大后端欢迎你;
    5. 好奇心强、自学能力强且有终身学习的觉悟的人,或者喜欢钻研技术的人,或喜欢充满挑战性的工作的人。后端看似简单,实际上技术含量是非常高的。就如前面所说,现在的后端可不仅仅是CRUD,而是随着互联网和云计算技术的发展而不断改变,Web应用程序在需求不断变化的过程中功能变得越来越强,架构变得越来越复杂,对性能的考验也越来越严峻,技术含量自然也就越来越高。作为一名后端开发工程师,需要有不断学习新技术的觉悟,还需要有一定的自学能力,因为不是什么技术都有人教你的,在学习和使用最新技术时对着英文文档啃是常有的事;
    6. 对系统架构感兴趣或想要成为架构师的人。虽然不可否认的是由于前端至今没有“一统天下”的解决方案而使得前端开发人员经常会比后端开发人员更早地接触到架构的部分,但是传统意义上的前端说白了也就是浏览器那“一亩三分地”(前端同学别喷我,这里仅仅说的是传统的Web前端,“大前端”是不算的哈),而后端技术的天花板则是“地球上人类的数量”(接触过高并发的同学看到这句话应该很有感触吧,哈哈),而核心的业务逻辑往往存在于后端,后端的优化压力往往比前端更大,这就使得初级的后端开发者在进行开发时需要对系统的架构有一定了解、高级的后端开发者需要经常思考系统的架构设计的问题,这也使得后端开发者更容易成长为架构师;
    7. 沉得住气的人。除了有第5条中提到的“后端的技术含量实际上是非常高的”这一原因之外,还有一个原因就是后端并不是“所见即所得”的,经常需要你编写几十甚至几百行代码、做无数复杂的配置才能把Web应用运行起来(注意,是运行,写业务逻辑的话需要更多代码),另一个原因是后端开发的门槛比前端要高——你至少得掌握一门语言和这门语言在后端开发方面的一些框架或库才能开始开发。所以,后端开发者必须要沉得住气,不能因为写几行代码看不到任何效果就想放弃;
    8. 对系统的基础设施(如框架、库和解决方案等)感兴趣的人。据我所知,许多在云原生方面有深刻造诣的大佬都是从后端开发者成长起来的,许多框架的作者曾经也是后端开发者。如果你碰巧像我一样对框架、库和解决方案(如Spring BootSpring CloudGinKubernetesIstio等)十分感兴趣,那么可以从成为一名后端开发者开始,在编写业务代码的过程中慢慢体会框架的重要性和所用框架的优缺点,以及如何设计一个好的框架。

    虽然你并不需要满足以上每一项才能成为一个后端开发工程师,但是如果你发现你满足上面的某一条或某几条,而且你还没有找到自己的方向,那么不妨来尝试一下后端开发。

    我为什么喜欢后端开发

    先简单介绍以下我的经历吧。我从2019年1月开始接触前端开发,于2019年8月正式转向后端开发,并一直从事后端开发至今。我喜欢后端开发的原因,其实很简单:

    1. 我反感写界面,痛恨GUI编程,每次一写界面我就想遁地。后端开发不需要考虑界面的问题,这里没有界面,只有API;
    2. 我喜欢写实在的业务逻辑,不想总是隔着个API而“任人摆布”,解决实际问题对我来说简直棒极了;
    3. 我喜欢与机器打交道,可以写一天的代码而不感到无聊,但我不喜欢与人打交道,尤其是面对面交谈非技术问题时总会感到不自然(当然,聊技术我能聊一天都不嫌烦);
    4. 我想要成为一名架构师,想成就优秀的设计,而后端开发能更多地接触到系统的架构和设计;
    5. 接触到后端开发后,我发现我对这一领域内的绝大多数事物都感兴趣,如云原生、DDD、Service Mesh、系统架构等;
    6. 写前端会让我感到痛苦万分,因为我审美诡异、不擅长思考用户的使用逻辑、不擅长编写交互逻辑,写出来的东西又丑又反人类。而当我开始写后端时,我发现我的思考方式经常和真实的业务逻辑出奇地一致,有时候还能在做项目的过程中发现当前所使用的工具的不足,并且思考如何才能设计得更好;
    7. 做后端开发做了一年左右,我越来越感觉到我喜欢这份工作。

    如果你也和我有一样的想法,那么你说不定也非常适合从事后端开发的工作。大后端欢迎你的到来。

    结语

    很多人对后端开发的误解源于缺少一篇系统地介绍后端开发的文章。虽然作为一个仅仅入行一年半(截止到2021年3月)的菜鸟,我对后端开发的理解肯定还有许多不足与偏颇,这篇文章也并不那么“系统”,但我仍希望这篇文章能帮助到其他同学了解后端开发或消除对后端开发的误解,抑或找到自己的方向而走上后端开发这条路。

    如果发现文中的错漏之处,欢迎发表评论或联系我进行改正。希望能帮到更多对后端开发感兴趣的同学。

    展开全文
  • Web后端基础知识

    2021-04-06 23:55:47
    总结 前言 web后端基础知识总结 一、web基础知识 1.web开发使用java的优势 ①跨平台性:“一次编译,处处运行”,尽管现在都是Unix系统作为服务器端的操作系统,但跨平台 ②丰富的API,且支持第三方类库,大量的...


    前言

    web后端基础知识总结


    一、web基础知识

    1.web开发使用java的优势

    跨平台性:“一次编译,处处运行”,尽管现在都是Unix系统作为服务器端的操作系统,但跨平台
    ②丰富的API,且支持第三方类库,大量的优秀开发者开源很多优秀的项目/框架,大大降低了开发成本。

    2.web前后端分离有什么好处?谈一下各自的职责。

    ①好处: 符合“高内聚 低耦合”的开发原则,各自分工;前端负责页面的设计与展示 后端负责业务逻辑的实现;各自出现较大问题,不会对另一方造成巨大影响。
    后端职责: 其负责的是web网站后台逻辑的设计和实现还有用户及网站的数据的保存和读取。 比如一般网站都是有用户注册和登录的,用户的注册的信息通过前端发送给后端,后端将其保存在数据库中,用户登录网站的时候,后端通过校验用户输入的用户名和密码是否与数据库中的一致来判断用户是否可以登录,这是后台开发中基础的功能。

    3.POJO和Java Bean?

    ①POJO:”Plain Ordinary/Old Java Object“ 简单的Java对象:没有被其他外部结构破坏的Java对象(没有继承 / 实现接口等)
    比较适合成为数据库的数据表的成员!
    ②Java Bean:Java的一种可复用组件,一般还有三个要求:
    i.此类必须是序列化的(实现Serializable接口,并给予序列号)
    ii.必须有public无参构造器.
    iii.此类的属性使用getter和setter访问,其他方法命名也需遵循规范。

    图示
    在这里插入图片描述

    4.Tomcat容器(应用服务器)谈一下?

    是Apache开源免费的一款的轻量级应用服务器(jsp服务器),它可以实现JavaWeb程序的装载,是配置JSP(Java Server Page)和JAVA系统必备的一款环境。

    5.Servlet谈一下?

    Sun公司在其API中提供了一个servlet接口,用户若想用发一个动态web资源(即开发一个Java程序向浏览器输出数据)
    ①编写一个Java类,实现servlet接口。
    ②把开发好的Java类部署到web服务器中。我们也把实现了servlet接口的java类,称之为Servlet。

    6.Servlet的生命周期谈一下?

    加载和实例化Servlet
    ②初始化-init()
    ③处理请求-调用service
    ④销毁-destroy()
    图示
    在这里插入图片描述

    7.Servlet的三大作用域谈一下?

    HttpServletrequest 请求对象;
    生命周期 : 请求开始时创建
    销毁 : 一次响应开始的时候
    作用范围 : 在一次请求中共享数据
    ServletSession 服务器端对象
    生命周期 : 第一次调用 request.getsession()
    销毁 : 默认30分钟以后服务器关闭的时候
    session.invalidate() 手动销毁
    session.remove(“ cart”) 销毁指定se
    作用范围 : 在一次会话中(多次请求)中共享数据
    servletConetext (application)
    生命周期 : 服务器启动时为每一个项目创建一个对象
    销毁 : 服务器关闭的时候 或者项目移除的时候
    作用范围 : 当前项目下所有的程序都可以共享(永久共享)

    8.Cookie和Session的技术的理解?

    CookieSession都是用于跨网页共享数据的技术

    Cookie: 记录信息保存于客户端,供浏览器与Web服务器互通数据用的纯文字文件。当IE执行时,会在计算机中产生一
    个cookie。

    Session: 记录信息保存于服务器,在不同的页面中传递。主要方法:setAttribute(), getAttribute()

    开发原则: 优先使用Cookie,Session比cookie 更安全,但是也更占用资源 , 也尽量少向Session中保存信息。
    Session使用了Cookie的机制,如果Cookie禁用,则Session也无法使用, 那么可以使用URL地址重定向解决。

    9.

    10.

    11.

    二、进阶知识

    1.分布式系统谈一下,设计分布式系统需要注意哪些问题?

    ①解释: 分布式系统的本质就是将一个系统合理的拆分成多个子系统,然后部署到不同的机器上。
    ②设计注意事项:
    i. 如何合理的拆分出子系统?
    ii. 子系统之间需要通信才能合作一起对外提供服务,如何规划子系统之间的通信?
    iii. 多个子系统之间相互通信交换数据,那么如何保证数据的一致性?
    iv. 通信过程的安全需要怎么保证?
    v. 子系统如果要扩展的话,应该怎么设计?
    vi. 子系统的可靠性如何保证?

    2.

    无用

    3.

    无用

    4.

    无用

    5.

    无用

    6.

    无用

    7.

    无用

    8.

    无用

    9.

    无用

    10.

    无用

    11.

    无用

    12.

    无用

    13.

    无用

    14.

    无用

    15.

    无用

    16.

    无用


    总结

    web后端基础知识总结到此结束,web真难啊

    展开全文
  • web后端高级开发.zip

    2019-10-03 13:52:13
    web后台开发ppt集合,帮助web新手入门文档。。。。。。
  • Web后端框架

    2018-08-01 14:15:43
    一款绝好用的物联网开发框架,功能强大,能很快上手开发自己的业务
  • Java Web 后端技术

    2020-10-14 23:12:44
    后端技术(上) 在拉钩教育学了那么久大数据课程到现在也是第一次写博客,可能理解不是很深,但也是自己学的一个小的总结,也希望各位大神不吝赐教。 1.Tomcat服务器 1.1Java Web 在讨论Tomcat之前先说明一下Java Web...

    Java Web后端技术(一)

    学习Java及其相关技术到现在也是第一次写博客,可能理解不是很深,但也是自己学的一个小的总结,也希望各位大神不吝赐教。

    1.Tomcat服务器

    1.1Java Web

    在讨论Tomcat之前先说明一下Java Web。Java Web是用Java技术来解决相关Web领域的技术综合。简单的说就是把编写好的代码放到互联网上提供给所有用户访问。在计算机之间进行信息交流称为交互,目前存在两种典型交互方式:B/S 交互模型(架构)和 C/S 交互模型(架构)

    B/S交互模型:能够通过普遍浏览器访问服务器,并不需要安装专门的客户端。所以也会便于开发,部署以及更新,然而由于便捷性也会导致用户的体检较差。

    C/S交互模型:与B//S交互模型不同的是,不要有专门的客户端方位对应的服务器。就如同现在手机中的app和电脑中的各种软件。同样的,对于用户体验感很好,但是开发、部署以及维护比较繁琐,客户端安装包也比较大,下载及安装也比较费时。
    两个交互模式之间也是相对的,优缺点也是很明显。

    而开发者则通过web服务器资源从本地发布到互联网。资源则分为两类资源,一种是静态资源,是一种固定的资源,对于不同的用户访问时都能看到的是同一个内容,最简单的例子是每天看到的新闻资讯;而另一种是动态资源,相同的页面对于不同的人会显示不同的显示内容,就如同购物车,不同的人看到的不同结果。

    url是对互联网上资源位置的一种表示,对于互联网上的每一个文件都有对应的url
    一般url表示格式如下:

    协议://域名:端口号/资源位置?参数=
    1. 协议,http、https、ftp等
    2. 域名,域名或IP地址,都可以访问WEB资源
    3. 端口号,程序必须使用端口号,才可以让另一个计算机访问。http协议的默认端:80
    4. 资源位置,用于描述WEB资源在服务器上的位置。
    5. 参数=值,浏览器和服务器交互传递的数据

    1.2Tomcat 服务器

    tomcat官方下载链接:Tomcat
    在这里插入图片描述
    安装:绿色免安装版,解压即可使用
    目录结构

    在这里插入图片描述
    启动与停止:在bin目录中的startup.batshutdown.bat;

    在这里插入图片描述
    在启动后可以访问到tomcat界面则启动成功

    在这里插入图片描述
    发布项目的三种方式

    1. webapps部署(简单):在webapps下部署页面
    2. server.xml部署(了解)
    3. 独立xml部署(开发时使用):在tomcat/conf/Catalina/ localhost 目录下创建一个xml文件,添加标签

    1.3在idea中配置使用tomcat服务器【重中之重】

    配置Tomcat服务器流程:add Configurations->Templates->Tomcat Server->Local,在Application server中点击Configuration并选择Tomcat Home;在本地文件中选择Tomcat文件目录。

    发布web流程:在Tomcat Server中的Development中添加web项目。

    在这里插入图片描述
    在这里插入图片描述

    然后就可以启动Tomcat并且能访问页面了。然而在代码发生变化以后就需要重新启动Tomcat,而idea中存在页面热更新,在页面资源修改后可以立即生效。

    在这里插入图片描述

    2.HTTP协议

    HTTP协议:超文本传输协议(HTTP,HyperText Transfer Protocol)是在互联网中普遍的网络协议,用于定于web浏览器和服务器之间的传输过程。

    传输协议:在客户端和服务器端通信时,规范了传输数据的格式

    特点:

    1. 基于请求/响应模型的协议—请求和响应必须成对且有了请求才有的响应
    2. 简单快捷—发送请求的时候只需要发送请求方式和请求路径即可
    3. http协议默认端口:80
    4. 无状态协议:多次请求之间相互独立,不能交互数据
      HTTP协议包含两种报文格式:请求报文响应报文

    2.1请求报文

    定义:由客户端向服务器端发出的报文。

    格式:包含请求行、请求头、空行、请求体 四个部分

    在这里插入图片描述
    2.1.1 请求行

    包括 请求方式 资源路径 协议/版本
    请求方式在协议中规定了7种,目前常用的有两种GETPOST

    1GET请求:在URL后面追加请求参数,较不安全;然而对于请求方式的数据大小没有长度限制;没有请求体。

    2POST请求:请求参数显示请求体处,比较安全;对于请求数据大小也没有限制。

    2.1.2请求头

    描述客户端向服务器发送请求时使用的http协议类型,所使用的编码,以及发送方内容的长度,referer,等等。
    请求头是用键值对key:value。

    常见请求头描述
    Referer浏览器通知服务器,当前请求来自何处。如果是直接访问,则不会有这个头。
    Cookie与会话有关技术,用于存放浏览器缓存的cookie信息。
    User-Agent浏览器通知服务器,客户端浏览器与操作系统相关信息

    2.1.3 请求体

    通常情况下,只有post请求方式才会使用到请求体,请求体中都是用户表单提交的数据,每一项数据都使用键值对key=value,多组值使用&相连。

    2.2响应报文

    定义:由服务器向客户端发出的报文。
    格式:包含响应行、响应头、空行、响应体 四个部分

    在这里插入图片描述
    2.2.1响应行

    格式:协议/版本 状态码 状态码描述

    状态码为服务器于浏览器用于确定状态的固定数字号码

    状态码含义
    200请求成功
    302请求重定向
    304请求资源没有改变,访问本地缓存
    404请求资源不存在。通常是用户路径编写错误,也可能是服务器资源已删除
    500服务器内部错误。通常程序抛异常

    2.2.2响应头

    用来描述服务器回给客户端浏览器的content的一些描述
    响应头也是用的键值对 key:value

    常见响应头描述
    Location指定响应的路径,需要与状态码302配合使用,完成跳转。
    Content-Disposition文件下载的时候使用。通过浏览器以下载方式解析正文
    Set-Cookie与会话相关技术。服务器向浏览器写入cookie
    Refresh定时刷新

    2.2.3响应体

    服务器发送给浏览器的正文

    展开全文
  • Go Web后端基础功能

    2015-11-23 00:16:40
    Go作为google新新语言,相信未来还是有大发展的。此代码实现web后端的一些基础功能,对初学者还是有参考意义的,高手请略过,同时有错误也欢迎指出。
  • java的一个视频网站前后端都有,主要用于让新手习惯开发格式
  • web后端开发程序

    2015-05-19 20:41:09
    主要是web后端开发的servlet,主要讲述一些基本程序的登陆的操作。
  • Web后端开发入门(1)

    万次阅读 多人点赞 2018-07-10 20:23:48
    Web概述: 在英语中web表示网页的意思,它用于表示Internet主机上供外界访问的资源。Internet上供外界访问的Web资源分为: 1.静态Web资源(如html页面):指web页面中始终不变的数据。 2.动态Web资源:指web页面...

    Web概述

        在英语中web表示网页的意思,它用于表示Internet主机上供外界访问的资源。

    Internet上供外界访问的Web资源分为:

        1.静态Web资源(如html页面):指web页面中始终不变的数据。

        2.动态Web资源:指web页面中供人们浏览的数据是由程序产生的,也就是实时变化的数据。

    动态Web应用的实现手段:

        静态web开发技术有html,常用动态web开发技术有:JSP/Servlet、Microsoft  ASP、ASP.NET、PHP等。

        1.Microsoft  ASP、ASP.NET

            微软公司动态web开发是比较早的,而且最早在国内最流行的就是ASP。ASP就是唉HTML语言之中增加了VB脚本,但是标准的开发应用应该是使用ASP+COM,但是实际情况来看,在开发ASP的时候基本上都在一个页面中写上成百上千行的代码,这就使得页面代码极其混乱。

            ASP本身有开放平台的限制:Windows+IIS+SQL Server/Access,ASP只能运行在Windows操作系统上,ASP现在基本上已经淘汰,取而代之的是ASP.NET,它在性能上有了很大的改善,并且开发迅速,但是依然受限于平台。ASP.NET中主要是使用C#语言。

        2.PHP

            PHP开发速度很快,功能强大,跨平台,而且代码也简单。但是只适用于开发小型网站,

        3.Servlet/JSP

            这是SUN公司主推的B/S架构的实现语言,是基于JAVA语言发展起来的,因为JAVA语言足够简单,而且很干净。

            Servlet/JSP技术的性能是非常高的,不受平台限制,各个平台基本上都可以使用,而且在运行中是使用多线程的处理方式,所以性能非常高。

            SUN公司最早推出的WEB技术推出的是Servlet程序,Servlet程序本身使用的时候有一些问题,所有的程序是采用JAVA代码+HTML的方式编写的,也就是说,要使用JAVA输出语句,一行一行的输出所有的HTML代码,之后,SUN公司受到了ASP的启发,发展出了JSP。 JSP的某些代码的编写效果与ASP是非常相似的。这样可以很方便地使用一些ASP程序员转向JSP的学习,加大市场的竞争力度。

    JavaWeb应用程序

        在SUN的Java Servlet规范中,对JavaWeb应用作了这样的定义:“JavaWeb应用由一组Servlet、HTML页、类、以及其它可以被绑定的资源构成。它可以在各种供应商提供的实现Servlet规范的Servlet容器中运行”。

        JavaWeb应用中可以包含如下内容:

    • Servlet
    • JSP
    • 实用类
    • 静态文档如HTML、图片等
    • 描述Web应用的信息(web.xml)

        Servlet和Servlet容器


            我们首先通过web浏览器发送一个HTTP请求,这个HTTP请求会到web容器中,web容器把它定位到一个具体的servlet中,servlet中包含具体的servlet和jsp,然后servlet会访问数据库,之后数据库再把数据返回给servlet,servlet再返回给web服务器,web服务器再通过HTTP响应给到web浏览器,之后我们就能看到请求的数据。

    request  请求          response  响应

    WEB服务器

        简介:Web服务器是指驻留于因特网上某种类型计算机的程序,是可以向发出请求的浏览器提供文档的程序。当Web浏览器(客户端)连接到服务器上并请求文件时,服务器将处理该请求并将文件反馈到该浏览器上,附带的信息会告诉浏览器如何查看该文件(即文件类型)。


        服务器是一种被动程序:只有当Internet上运行在其他计算机中的浏览器发出请求时,服务器才会响应。


          Servlet容器为JavaWeb应用提供运行时环境,它负责管理Servlet和JSP的生命周期,以及管理它们的共享数据。Servlet容器也称为JavaWeb应用容器,或者Servlet/JSP容器。

        常见的Web服务器:

        1.WebLogic

            WebLogic是美国bea公司出品的一个application server。BEA WebLogic是用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应用的Java应用服务器。将Java的动态功能和Java Enterprise标准的安全性引入大型网络应用的开发、集成、部署和管理之中。是目前应用最广泛的Web服务器,支持J2EE规范,而且不断的完善以适应新的开发要求

        2.WebSphere

            WebSphere Application Server是一种功能完善、开放的Web应用程序服务器,是IBM公司电子商务计划的核心部分,它是基于Java的应用环境,用于建立、部署和管理Internet和Intranet Web应用程序。这一整套产品进行了扩展,以适应Web应用程序服务器的需要,范围从简单到高级到企业级。

        3.Tomcat

            Tomcat是一个实现了JAVA EE标准的最小的WEB服务器,是Apachc软件基金会的Jakarta项目中的一个核心项目,由Apache、Sun和其他一些公司及个人共同开发而成。应为Tomcat技术先进、性能稳定,而且开源免费,因而深受JAVA爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web应用服务器。该服务器支持全部JSP以及Server规范。



    展开全文
  • 深入学习Python,用Django做Web后端开发现在Python的用途愈来愈广,服务器、Web、游戏、爬虫、数据分析以及人工智能学习之路还很长技术之路不能回头陷进去就出不来就跟恋爱一般,学习中、项目中印象笔记、有道云笔记...
  • python WEB后端面试(自己整理部分答案)

    万次阅读 多人点赞 2018-07-11 08:53:00
    Web框架部分 Django Rest Framework 项目部分 爬虫 先做下自我介绍 做Python几年了?为什么选择Python? 学历?大学什么专业? 除了Python以外对其他语言有没有了解? 你对Python这门语言的看法? 在...
  • Web前端和Web后端的区分

    万次阅读 多人点赞 2018-05-19 15:39:23
    后台包括前端、后端。 前端:对应我们写的html、css、javascript 等网页语言作用在前端网页。 后端:对应jsp、javaBean、dao层、action层和service层的业务逻辑代码。(包括数据库) 为什么jsp是后端呢?主要是...
  • Web后端开发入门(2)

    万次阅读 2018-07-10 23:21:37
    一台物理机上搭建多个web站点,每个web站点独立运行,互不干扰,这些站点就是虚拟主机 基于主机名的虚拟主机配置 基于主机名的虚拟主机:多个域名解析到同一个IP地址,在WEB服务器里添加多个站点,每个站点设定一个...
  • 同样是spring团队开发的另一个开源项目,目前看来这个项目是非常受欢迎的,所以作者也打算用自己的方式系统性的学习一下这门技术,今天就来讲讲怎样使用springBoot快速搭建一个web后端工程。 在我们开始使用...
  • web后端思维导图
  • python_web(三)一个简单web后端框架

    千次阅读 2018-03-04 14:09:44
    #简单的web后端框架 #coding: utf-8 import socket def log(*args, **kwargs): print('log', *args, **kwargs) #日志输出记录函数 def route_index(): header = '...
  • 从目前的就业形势看,是从事pythonWeb后端开发好呢?还是从事网络爬虫比较好呢?目前互联网+的趋势依旧火热,越来越多的行业已经开始向互联网的方向靠拢了。在互联网+的影响下,各行各业都会有无限的可能性和创造性...
  • web后端经验总结

    千次阅读 2018-01-29 16:43:59
    1.在写后台程序的时候,主要是增删改,这时候要做好前端发来的数据的校验
  • web后端开发】笔试题收集

    千次阅读 2019-07-19 11:03:00
    4399Web后端开发笔试题 题目来源:牛客网 1.linux中,用mkdir命令创建新的目录时,如果需要在其父目录不存在时先创建父目录的选项是 D A -h B -d C -f D -p 【-p或--parents若所要建立目录的上层目录目前尚未...
  • Python web后端开发框架 Django 、Flask、Tornado

    万次阅读 多人点赞 2018-03-07 15:16:25
    深入学习Python ,用Django做Web后端开发现在Python的用途愈来愈广,服务器、Web、游戏、爬虫、数据分析 以及人工智能 学习之路还很长技术之路 不能回头 陷进去 就出不来 就跟恋爱一般,学习中、项目中 印象笔记、...
  • Web后端开发知识点整理

    千次阅读 2018-09-02 21:12:59
    Web后端开发知识点整理 九大内置对象 1:为了方便开发者而在jsp页面加载完毕时而自动创建的内置对象 内置对象名 类型 request HttpServletRequest response HttpServletResponse config ServletConfig ...
  • 新的OpenInfraMap Web后端,可提供信息和统计信息页面。 发展 poetry install poetry run uvicorn main:app --reload
  • Tasks:Web后端课程的任务
  • web后端mysql查询java代码详解

    千次阅读 2018-11-24 11:12:09
    核心代码如下所示:   Class.forName("com.mysql.jdbc.Driver");  String url="jdbc:mysql://localhost:3306/users";  String user="root";  String password2="... ...
  • 职位:后端开发工程师 职位描述: 1、负责电商系统和业务系统的开发工作; 2、负责持续优化系统和改造升级系统,保障系统性能高效稳定。 任职要求: 1、本科及以上学历,计算机科学与技术、软件工程、计算机...
  • Python web 后端学习路线图免费送啦,希望大家会喜欢。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 322,247
精华内容 128,898
关键字:

web后端