java后端开发(一):基本认知之web开发是什么

本文介绍了前端与后端开发的基础概念,解释了浏览器与网站的关系,探讨了网站如何通过中间层软件与数据库交互,以及登录验证的具体实现过程。

前言

  前两篇都是和数据库基本知识有关的: 数据表设计与mysql入门(一)数据表设计与mysql入门(二) 。逻辑上会设计数据表操作数据库了,但是还需要结合实际项目去加深印象。但是往下走之前,我们有必要先了解一下java web开发的相关背景知识和基础知识。

前置条件

  必看! 图解TCP/IP ,具体看哪部分,书签栏已经标注了。如果你有这本书,那么就看第一章,第二章,第8章第5小节即可。就是讲述了网络的基本概念,通俗易懂很有趣。

网站、浏览器VS操作系统、软件

  浏览器可以比作是电脑系统,他只是个运行环境,而网站就相当于电脑操作系统上的一个个软件,软件程序运行在电脑操作系统上,对应的就是网站(代码)运行在浏览器上。我们说的软件编程也就是编写代码,而我们的网站其实本质上就是一行行的代码,只不过被浏览器解析成你看到的界面与功能。电脑软件也是一样,你的excel就是一堆代码,只不过被电脑系统解析成你看到的样子。
  而电脑软件和网站的区别之一在于:电脑软件是你安装的时候就一次性的永久的把软件代码下载到电脑上了(除非你删掉),你每次使用软件都是操作系统在解析代码的过程;而你在浏览器中输入网址后,浏览器才会将网站代码下载下来,并进行解析后展示给你,你关掉了浏览器那么这些代码也就被删除了。
  所以这也是为什么你关掉浏览器然后断开网络,你再次打开浏览器输入网站地址却打不开网站的原因,因为网站代码删掉了,浏览器没有可以解析的东西,并且因为网络原因浏览器也不能下载网站代码,所以没法展示给你网站信息,只能提示你网络有问题。

一个问题

  你登录优快云总要输入用户名和密码吧?输入了正确的用户名和密码后,就可以看到自己的博客列表。那么优快云怎么知道你输入的用户名和密码正确与否呢?

  • 存在浏览器中。换一个浏览器怎么办?
  • 存在电脑上。换一个电脑登录怎么办?
  • 将账号密码写死在网页中。别人登录怎么办?

  也就是说优快云想要校验你输入的用户名和密码正不正确,他必须要去存储正确账号和密码的地方去读取才行,比如所有用户的账号和密码存在优快云这家公司中的一台电脑上的Excel中。听起来好像不错,但是先不说能不能实现,光这种方案就感觉漏洞很多。不过我们目前可以认同的是:用户名和密码肯定要存储在和优快云这家公司相关的机器上,这样子全国各地的用户才能不限时间地点的正确登录。
  优快云那边到底怎么存储呢?百思不得其解?去前言找找答案?
  答案当然是数据库。看过前两篇的同学肯定对数据库不陌生。优快云将用户名和密码存储在他们公司的数据库中,当用户在界面上输入账号密码时,优快云网站会去数据库中查询该用户名对应的密码,如果查到的密码和用户输入的密码一样,就可得知用户输入正确,所以登录操作就会成功。
那么你有感到奇怪吗?上段中的描述:

优快云网站会去数据库中查询该用户名对应的密码

  数据库在优快云公司里面,网站就在我打开的浏览器上,那么网站是怎么去数据库中查询的呢?
  通过前置条件中针对网络基础的学习,我相信你已经理解 协议 这个概念了,简单理解就是一种语言。而我们的浏览器只知道 HTTP 这种语言(当然,这样表述并不十分准确)。但是数据库我们说过了,他是解析 SQL 这种语言的,实际上 mysql 的语言是另外一种语言,总之和 HTTP 完全不同。
并且,
  说了这么多,我们再回来。不论网站代码怎么样,浏览器不支持其他协议你能怎么办?可是你又必须要去读取数据库的数据啊。现在我们的境遇是:
  一边是支持 HTTP 协议的浏览器,一边是支持特殊协议的 mysql 。二者肯定不能直接通讯了,那么该怎么办?

如何处理

  我们是不是可以找一个中间人,它既支持 HTTP 协议又可以支持 mysql 自定义的协议呢?就相当于找一个即会英语又会汉语的翻译员。
  好的,优快云在公司的电脑上编写了一个软件,该软件的作用就是接收外界发来的 HTTP 请求,然后根据请求内容决定去如何操作数据库。这样子,当你在优快云网站上输入账号密码点击登录按钮后,网站代码就会请求浏览器去发出一条包含你输入的用户名和密码信息的 HTTP 请求,该请求会发送到优快云公司编写的软件上,然后该软件解析以后发现是要验证输入的信息正确与否,它就去数据库进行查询并验证,然后再将正确信息告知你打开的优快云网站,最终你就可以成功登录了。
  上述的例子中有两大块东西,一块是网站本身,一块是中间层的那个软件,这两块都是需要优快云公司来开发的。而浏览器市场上已经有很多了,数据库也有很多可以选择的,所以他们除外。那么具体开发什么?

  • 网站本身

    • 界面布局:就和你画画一样,总要安排好哪里放什么怎么放吧
    • 交互设计:你鼠标移动到 “写博客” 按钮上他就会由白变红等等。
    • 页面跳转:比如你登录成功后展示给你的是哪个界面,你点击用户信息后展示给你的又是哪个界面
    • 业务功能:比如你输入的用户名不能包含特殊字符,当然可以有很多复杂的业务功能,这里不再描述。
  • 那个转换软件

    • 接收HTTP请求:总要知道网站要他干嘛吧,是要读取用户信息还是处理登录验证
    • 去和数据库交互:因为所有需要保存的数据都是存储在数据库的
    • 业务功能:比如用户注册请求,用户密码总不能以明文的形式保存在数据库吧,这样子太不安全了,需要加密后再存储。又或者用户上传的头像,我们把头像图片存储在别的地方,然后再在数据库中存储该用户头像的链接地址。当然可以有很多复杂的业务功能,这里不再描述。

最终总结

  上边的网站开发用专业术语来说就是 前端 开发,那个转换软件按照专业术语来说就是 后端 开发。前端开发主要面向的是用户,后端开发主要面向的是数据库。我们将要学习的自然就是后端开发了。前后端加起来就是web开发。二者联系紧密却又有各自独立的技术栈。
  下篇文章我们将会讲述web开发的历史,web开发的技术栈,以及我们现在采用的web开发的方式。

推荐阅读

本篇没有推荐阅读,可以自行搜索前端、后端、web开发进行了解。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

oatlmy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值