前言:本文章是Java Web后端技术系列的第一篇,主要介绍Web的基础知识,接下来将持续更新,感兴趣的小伙伴欢迎持续关注。因为我也是刚接触Java web方面的知识,尚有许多不足,如有错误欢迎指正!

Web即互联网,Java Web即使用Java技术来解决相关Web互联网领域的技术栈。通俗地来讲,就是把编写好的Java代码发布到互联网上,为别人提供服务。

网络中有很多的计算机,它们之间的信息交流,我们称之为“交互”。

软件架构

常见的两个交互方式是:B/S交互模式和C/S交互模式,也称为B/S架构和C/S架构。

这里面的S是Server,即服务器;B是Browser,即浏览器;C是Client,即客户端。

服务器是一台安装有服务程序的计算机,它的作用是将开发者的本地资源发布到互联网上,让别人可以访问到这些资源。

一般来说我们要获得某项服务,比如打王者荣耀,我们需要先在手机安装一个游戏软件,通过这个游戏软件与服务器获得连接,从而能够享受游戏。这其中的游戏软件就是客户端,手游的这种交互方式就是C/S架构。

C/S架构下访问服务器必须安装相应的客户端软件,客户端软件可以执行很多程序、存放很多数据,这种架构能够提供更多更好的服务。比如玩手游,手游需要大量的模型数据,这些数据是提前存放在客户端的,与服务器连接的时候只需要交互较少量的信息即可,这样即使网速不够快我们依然能够享受到这种服务。

而有时候我们并不需要向服务器请求大量的资源,比如看文章、查资料、看视频等,如果每一个服务都要单独安装一个软件,那就太麻烦了。

试想一下,如果你要上微博,你必须在电脑上安装一个微博的客户端;要上开源中国,必须在电脑上安装一个开源中国的客户端;要上CSDN,必须在电脑上安装一个CSDN的客户端…那是一种什么体验…

更合理的方法应该是将这些较轻量的工作都交给同一个客户端,让它来处理所有这些服务。这个客户端可以向不同的服务器发送请求、接收响应并展示响应信息,这个就是浏览器,相对应的也就是B/S架构。

B/S架构是一种特殊的C/S架构,一个客户端(浏览器)连接多个不同的服务器。理论上讲,C/S架构能实现的服务B/S架构也能实现,只要网速足够快。

比如在2G、3G时代,要看电影一般都是下载到本地,用本地播放器看的,因为如果要在线观看的话网速太慢了。但是现在网速提升了,我们可以轻松地用浏览器看电影、甚至看直播。同样的,现在我们虽然无法用浏览器玩大型游戏,但随着网络技术的发展、5G的到来,云电脑、云游戏等即将来临,到时候通过浏览器玩大型游戏也不再是不可能的事情。

B/S架构和C/S架构各有优缺点:

B/S架构的特点是开发、部署、更新都比较简单,但是用户体验稍微差一些。

试想一下在手机上登陆网页版的微信和直接用微信软件哪个更舒服一些。

C/S架构的特点是用户的体验更好,但需要对客户端及服务器代码进行开发、部署、维护更新。

比如开发者要对APP进行功能升级,则需要升级服务器和客户端的功能,然后将新版本的客户端发布到应用商店里,用户下载更新后才能使用到新功能。而如果是基于B/S架构的话,开发者只需要升级服务器,用户下一次访问的时候就可以直接使用新功能了,不需要那么麻烦的操作。

因此,随着网络技术的发展,B/S架构未来可能会更加吃香一点。

资源分类

上面我们讲到要向服务器请求资源,资源的种类很多,主要分为两种:静态资源、动态资源

对于静态资源,同一个页面,不同用户看到的内容都是一样的。

    比如百度首页。常见的文件后缀有: .html、.js、*.css

对于动态资源, 同一个页面,不同用户看到的内容可能不一样 ​​​​​​。

 比如我的淘宝购物车常见的文件后缀有: .jsp、.aspx、*.php

值得注意的是,浏览器不能直接解析动态资源,需要Tomcat将动态资源转为静态资源。对于Tomcat是什么、怎么用,将在后面的文章介绍。

URL

网络上的资源那么多,我们怎么定位某一个具体的资源呢?一个比较显而易见的方式是为每一个资源设置一个独一无二的编号,我们只要知道编号,就能够找到资源。

这个编号就是Uniform Resource Locator——统一资源定位符,简称URL,通俗的理解就是网址。

要用一个编号规则为无数的资源编号,我们需要一个严格的编号规范。URL的完整格式如下:

 协议://域名:端口号/资源位置?参数=值

协议:常见的协议有http、https、ftp
域名:域名或IP地址
端口号: 程序必须使用端口号,才可以让另一个计算机访问。之所以很多的URL上是没有端口号的,是因为http协议的默认端是80,可以省略
资源位置: 用于描述WEB资源在服务器上的位置
参数=值: 浏览器和服务器交互传递的数据

常见的URL解析: https://www.google.com/search?q=Java
上面的URL中,
协议是:https;
域名是:www.google.com,域名是独一无二的;
资源位置是:search;
传递的参数是:q=Java

Web服务器

Web服务器可以理解为一种服务程序,安装了它之后你的计算机就可以成为一台服务器(见上面关于服务器的介绍)。

常见的Web服务器有:

免费:

    Tomcat: Apache组织开源免费的web服务器,支持JavaEE规范(后面将重点介绍这个Web服务器)Jetty:Apache组织开源免费的小型web服务器,支持JavaEE规范JBoss:RedHat红帽公司的开源免费的web服务器,支持JavaEE规范Glass Fish:Sun公司开源免费的web服务器,支持JavaEE规范

付费:

    WebLogic:Oracle公司收费的web服务器,支持JavaEE规范WebSphere:IBM公司收费的web服务器,支持JavaEE规范

各种服务器所占的市场份额

Java EE规范是Oracle公司规定的一种服务器规范(本质上是一组接口),所有的服务器厂商都要实现这些接口。
在JavaEE中一共有13种规范。实现的规范越多,功能越强。

总结

最后用思维导图总结本文章的内容。

Web基础知识——新手入门相关推荐

  1. HTML day_01(5.31)Web基础知识、HTML快速入门 、 文本、图像和链接

    一.课程安排 1.HTML5天 所有的网页结构,数据都是由h5搭建的 2.AJAX 5天 异步的数据交互,帮我们进行异步的连接服务器,发送请求,接收响应 3.CSS3 8天 美化页面,让页面做的更好看 ...

  2. HTML第一章 (WEB基础知识、 HTML入门、HTML的语法规则、HTML常用标签汇总、图片与超链接、HBuilder的快捷键)

    目录 一.WEB基础知识 二.HTML入门 三.HTML的语法规则 四.HTML标签 五.图片与超链接 六.HBuilder的快捷键 每日一句 一.WEB基础知识 我们可以做什么? WEB前端 大前端 ...

  3. thinkph 上花院 生多行mysql_PHP_ThinkPHP3.1基础知识快速入门,在当今众多的MVC框架中,ThinkPH - phpStudy...

    ThinkPHP3.1基础知识快速入门 在当今众多的MVC框架中,ThinkPHP是一个快速.简单的基于MVC和面向对象的轻量级PHP开发框架,其遵循Apache2开源协议发布,自从诞生以来一直秉承简 ...

  4. 计算机打字工作内容,计算机基础知识打字入门

    <计算机基础知识打字入门>由会员分享,可在线阅读,更多相关<计算机基础知识打字入门(1页珍藏版)>请在人人文库网上搜索. 1.计算机基础打字入门对于初学者而言,其实应该把打字作 ...

  5. 【笔记】网易微专业-Web安全工程师-01.WEB基础知识

    课程概述: 本课是基础中的基础,通俗易懂的讲解了Web的本质和Web开发的基础知识.对于Web小白,建议从头开始抓紧学习:对于已经有一定Web基础知识的同学,建议快速的过一遍,夯实基础. 课程大纲: ...

  6. ps基础教程新手入门第一篇:ps界面的介绍

    欢迎来到慕恬瑶平面设计,今天给大家介绍PS基础教程新手入门第一篇: ps界面的介绍.目的让第一次接触ps的小伙伴通过ps基础教程新手入门来了解ps界面的菜单栏,工具栏已方便日后使用. 首先,打开PS ...

  7. 计算机硬件入门基础,计算机硬件基础知识总汇(入门讲解)

    计算机硬件基础知识总汇(入门讲解) PC部分 认识篇 个人计算机基本组成 个人计算机是由硬件系统和软件系统组成. 硬件:是指看的见.摸得着.实实在在的装置.(如:中央处理器(CPU).内存.硬盘.显卡 ...

  8. 音视频开发开发核心知识+新手入门必看基础知识

    音视频开发是一个广泛的领域,它涉及到多个技术领域,包括音频编解码.视频编解码.媒体容器格式.流媒体传输.音视频处理等.以下是音视频开发的一些基础知识: 音频编解码器:音频编解码器是将数字音频信号编码成 ...

  9. JavaScript基础教程新手入门必看

    对前端稍微有点了解的初学者都知道,JavaScript是必不可少的工具.毫不夸张的说,大部分网页都使用了JavaScript,想要成为一个优秀的前端工程师,做出漂亮令用户满意的网页,熟练掌握JavaS ...

最新文章

  1. Gerapy分布式管理框架
  2. 知名5G女教授邱锂力加盟MSRA,任职副院长!出走半生,回归上海
  3. DMURLConnection
  4. bigquery sql 正则表达式
  5. win10下输入法突然变成繁体了怎么设置回来?(繁體)(快捷鍵:ctrl + shift +f)
  6. Shiro身份认证---转
  7. ABP vNext微服务架构详细教程——分布式权限框架(下)
  8. 【博客园IT新闻】博客园IT新闻 iPhone 客户端发布
  9. 浮栅场效应管 符号_华成英 - 模拟电子技术基础 | 场效应管
  10. InstallShield 使用说明
  11. 2022年电子考研经验分享,本科双非,一志愿南航,调剂国科大上岸
  12. usb口拒绝访问_电脑插上U盘显示无法访问 拒绝访问怎么回事
  13. 美团2021届秋季校园招聘笔试真题解析:小美的仓库整理
  14. 魔兽争霸无法在这个计算机,win10系统魔兽争霸按F1无法选中自己的英雄的图文办法...
  15. windows embed sapi php,19.1 嵌入式SAPI
  16. 华为拍摄月亮专利公布: 多次曝光获取月亮清晰轮廓
  17. 自定义vbs脚本开机启动程序
  18. POI-HSSF表格
  19. 多家技术公司喊停的人脸识别业务,被这家波兰网站玩火了!
  20. java生成pdf文件乱码问题解决

热门文章

  1. 手把手教你整合 SpringMvc+Spring+MyBatis+Maven
  2. 基于diagnose-tools 学习字符设备
  3. SSL error when connecting to the Jack server. Try ‘jack-diagnose‘ 报错处理
  4. 类似70度平台的软件汇总
  5. 跨界车 crossover vehicle
  6. 【rmzt】梦幻个性女孩xp主题
  7. [转]md语法|LaTex数学公式
  8. 线程生命周期以及线程创建的三种方式
  9. 程序员与年龄:人到中年不得已!程序员到了三四十岁该怎么办?
  10. 实例7-1 SR锁存器延迟模型