详解B/S和C/S架构的区别
无论是后端开发工程师前端开发工程师…我们工作内容是什么?编写软件
软件分大致分页为两大类:
C/S架构的软件
C表示客户端,S表示服务器
客户端:
用户通过客户端使用软件
服务器处理软件业务逻辑
举例:
QQ、微信…
特点:
1、C/S架构的软件需要安装才能使用
2、C/S架构的软件更新时,客户端和服务器都需要更新
3、C/S架构的软件无法支持跨平台
4、C/S架构的软件采用自有通信协议,安全性较高
B/S架构的软件
B表示浏览器,S表示服务器
B/S架构本质上就是C/S,只是客户端采用浏览器而已
举例:
淘宝、京东…
特点:
1、B/S架构的软件无需安装即可使用
2、B/S架构的软件更新时,客户端无需要更新
3、B/S架构的软件支持跨平台
5、B/S架构的软件采用的通信协议是HTTP,安全性较差(通过代码控制、https)
常见的应用服务器:
- 免费
Tomcat(web应用服务器),Servlet+jdbc+JSP、SSH、SSM、SpringBoot、SpringCloud Alibaba、、Dubbo
Jetty(web服务器)
Jboss(Ejb项目) - 收费
TongWeb(国产)
Websphere
Weblogic
IBM
访问项目:URL统一资源定位符:[协议][ip地址]:端口号/访问资源
[http://|https://][ip|localhost|127.0.0.1]:8080/访问资源
Tomcat目录结构
Tomcat目录结构
Tomcat-Name
|-bin tomcat的启动、停止等配置
|-conf 服务配置目录 server.xml可以配置端口、域名、项目的发布等
|-lib提供项目的驱动包
|-logs tomcat运行日志目录
|-temp 临时目录
|-webapps 项目发布目录
|-ROOT 项目发布目录(项目放置ROOT中,访问就可以省略项目名称和web目录)
|-work 缓存,永久文件存储目录(jsp编译的目录)
项目结构认识
项目名称
Project -Name
|-.idea idea的默认的配置文件目录(不要动)
|-out 编码文件 (不动)
|-Artifacts artifact是一种用于装载项目资产以便于测试,部署,或者分布式软件的解决方案。
|-production 主要用于存放编译后的java文件(.class文件)
|-src 存放java源码或者配置文件(xml……)
|-web 存放静态资源目录(css、html、js、jquery、bootstrap……)
|-WEB-INF 安全目录,不能直接访问里边的资源文件。
|-web.xml 项目的核心配置文件,切记不能删除。
|-lib 存放项目所需要引入的jar驱动包
http协议
http:// 超文本传输协议
访问项目:http://ip地址:端口号/访问资源
请求(request)是一个动作, 也是一个对象.
请求的构成:
1.请求行: [请求方法] [URL] [协议]
2.请求头: 包含对请求的描述(是否缓存, 接受什么类型的响应, 接受什么语言, …)
3.请求体: 用户希望提交给服务器的数据
请求体的格式: param1=value1¶m2=value2&…
响应(response)也由3部分构成:
-
状态行: [协议] [HTTP状态码]
-
响应头: 对响应内容的描述性信息
-
响应体: 服务器发送给浏览器的内容
HTTP状态码:
1xx : 请求被接受,需要继续处理
2xx : Success!
3xx : 告知浏览器, 需要重新请求另一个URL, 这称为重定向.
4xx : 客户端请求有误
5xx : 服务端发生了错误
200 : OK
302 : 告知浏览器, 重新请求另一个URL, 另一个URL的地址在响应头 location中给出
304 : 告知浏览器, 你所请求的资源没有更新的版本, 请从浏览器本地缓存中载入.
404 : Not Found 客户端所请求的资源找不到
400 : Bad Request 告知浏览器,你这次请求的语法不正确
401 : 告知浏览器, 用户未授权.
403 : 告知浏览器, 你所请求的资源禁止你访问.
405 : Method Not Allowd 这次请求所使用的方法(GET,POST…)不被支持
500 : Server Error 服务端程序出现错误
https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10
同步、异步请求的区别
请求方式主要有2种:
同步请求:阻塞
1、表单提交 <form action=”后台地址” method=”提交方式”>
2、超级链接提交方式<a href=”后台地址”>超级链接提交</a>
3、直接在URL地址栏访问localhost:8080/login.do?user_name=xx&user_pwd=xxx
异步请求:非阻塞
1、ajax请求