WEB开发

C/S模式

在这里插入图片描述

C/S方式的网络计算模式。

①、服务器负责管理数据库的访问,并对客户机/服务器网络结构中的数据库安全层加锁,进行保护;

②、客户机负责与用户的交互,收集用户信息,通过网络向服务器发送请求。

③、C/S模式中,资源明显不对等,是一种“胖客户机(fat client)”或“瘦服务器(thin server)”结构。

④、客户程序(前台程序)在客户机上运行,数据库服务程序(后台程序)在应用服务器上运行。

工作原理:

C/S模式主要由客户应用程序、服务器管理程序和中间件三个部分组成。服务器一般分为应用服务器和数据库服务器。两层C/S结构的实现原理是:应用程序(客户端)首先依据用户操作形成对应的SQL语句,然后通过网络协议(如:TCP/IP等)向数据库服务器发送SQL命令;数据库服务器通过其监听端口(如:Oracle的1521等)实时检测有无服务请求。当检测到有SQL请求时,服务器首先对客户端身份进行验证,验证通过后执行请求客户的SQL命令。

特点:

  ①、交互性强是C/S固有的一个优点。在C/S中,客户端有一套完整应用程序,在出错提示、在线帮助等方面都有强大的功能,并且可以在子程序间自由切换。

  ②、C/S模式提供了更安全的存取模式。由于CS配备的是点对点的结构模式,采用适用于局域网、安全性可以得到可靠的保证。而B/S采用点对多点、多点对多点这种开放的结构模式,并采用TCP/IP这一类运用于Internet的开放性协议,其安全性只能靠数据服务器上管理密码的数据库来保证。

  ③、由于C/S在逻辑结构上比BS少一层,对于相同的任务,C/S完成的速度总比BS快,使得C/S更利于处理大量数据。由于客户端实现与服务器的直接相连,没有中间环节,因此响应速度快。同时由于开发是针对性的,因此,操作界面漂亮,形式多样,可以充分满足客户自身的个性化要求。

特点:

C/S缺少通用性,业务的变更,需要重新设计和开发,增加了维护和管理的难度,进一步的业务拓展困难较多

B/S模式

在这里插入图片描述

B/S(Browser/Server,浏览器/服务器)方式的网络结构。

①、客户端统一采用浏览器如:Netscape和IE,通过Web浏览器向Web服务器提出请求,由Web服务器对数据库进行操作,并将结果传回客户端。

②、B/S结构简化了客户机的工作,但服务器将担负更多的工作,对数据库的访问和应用程序的执行都将在这里完成。即当浏览器发出请求后,其数据请求、加工、返回结果、动态网页生成等工作全部由Web服务器完成。

工作原理:

在B/S模式中,客户端运行浏览器软件。浏览器以超文本形式向Web服务器提出访问数据库的要求,Web服务器接受客户端请求后,将这个请求转化为SQL语法,并交给数据库服务器,数据库服务器得到请求后,验证其合法性,并进行数据处理,然后将处理后的结果返回给Web服务器,Web服务器再一次将得到的所有结果进行转化,变成HTML文档形式,转发给客户端浏览器以友好的Web页面形式显示出来。

特点:

①、系统开发、维护和升级的经济性:对于大型的管理信息系统,软件开发、维护与升级的费用是非常高的,BS模式所具有的框架结构可以大大节省这些费用,同时,BS模式对前台客户机的要求并不高,可以避免盲目进行硬件升级造成的巨大浪费。

②、B/S模式提供了一致的用户界面:B/S模式的应用软件都是基于Web浏览器的,这些浏览器的界面都很相似。对于无用户交互功能的页面,用户接触的界面都是一致的,从而可以降低软件的培训费用。

③、B/S模式具有很强的开放性: 在B/S模式下,外部的用户亦可通过通用的浏览器进行访问。

B/S模式的结构易于扩展:
由于Web的平台无关性,BS模式结构可以任意扩展,可以从一台服务器、几个用户的工作组级扩展成为拥有成千上万用户的大型系统。

④、B/S模式具有更强的信息系统集成性:
在BS模式下,集成了解决企事业单位各种问题的服务,而非零散的单一功能的多系统模式,因而它能提供更高的工作效率。

⑤、B/S模式提供灵活的信息交流和信息发布服务:
B/S模式借助Internet强大的信息发布与信息传送能力可以有效地解决企业内部的大量不规则的信息交流。

HTTP协议

简介

  1. http是一个简单的请求-响应协议,它通常运行在TCP之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。请求和响应消息的头以ASCII码形式给出;而消息内容则具有一个类似MIME的格式。
  2. HTTP是一个客户端终端(用户)和服务器端(网站)请求和应答的标准(TCP)。通过使用网页浏览器、网络爬虫或者其它的工具,客户端发起一个HTTP请求到服务器上指定端口(默认端口为80)。我们称这个客户端为用户代理程序(user
    agent)。应答的服务器上存储着一些资源,比如HTML文件和图像。我们称这个应答服务器为源服务器(origin server)。在用户代理和源服务器中间可能存在多个“中间层”,比如代理服务器、网关或者隧道(tunnel)。
  3. 通常,由HTTP客户端发起一个请求,创建一个到服务器指定端口(默认是80端口)的TCP连接。HTTP服务器则在那个端口监听客户端的请求。一旦收到请求,服务器会向客户端返回一个状态,比如"HTTP/1.1 200 OK",以及返回的内容,如请求的文件、错误消息、或者其它信息。

HTTP工作原理

HTTP协议定义Web客户端如何从Web服务器请求Web页面,以及服务器如何把Web页面传送给客户端。HTTP协议采用了请求/响应模型。客户端向服务器发送一个请求报文,请求报文包含请求的方法、URL、协议版本、请求头部和请求数据。服务器以一个状态行作为响应,响应的内容包括协议的版本、成功或者错误代码、服务器信息、响应头部和响应数据。

HTTP 请求/响应的步骤

  1. 客户端连接到Web服务器
  2. 发送HTTP请求
  3. 服务器接受请求并返回HTTP响应
  4. 释放连接TCP连接
  5. 客户端浏览器解析HTML内容
    在这里插入图片描述
基于 请求-响应 的模式

在这里插入图片描述

无状态保存

HTTP是一种不保存状态,即无状态(stateless)协议。HTTP协议自身不对请求和响应之间的通信状态进行保存。对于发送过的请求或响应都不做持久化处理。

在这里插入图片描述

使用HTTP协议,每当有新的请求发送时,就会有对应的新响应产生。协议本身并不保留之前一切的请求或响应报文的信息。这是为了更快地处理大量事务,确保协议的可伸缩性,而特意把HTTP协议设计成如此简单的。可是,随着Web的不断发展,因无状态而导致业务处理变得棘手 的情况增多了。比如,用户登录到一家购物网站,即使他跳转到该站的其他页面后,也需要能继续保持登录状态。针对这个实例,网站为了能够掌握是谁送出的请求,需要保存用户的状态。HTTP/1.1虽然是无状态协议,但为了实现期望的保持状态功能,于是引入了Cookie技术。有了Cookie再用HTTP协议通信,就可以管 理状态了。有关Cookie的详细内容稍后讲

无连接

限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间,并且可以提高并发性能,不能和每个用户建立长久的连接,请求一次相应一次,服务端和客户端就中断了。但是无连接有两种方式,早期的http协议是一个请求一个响应之后,直接就断开了,但是现在的http协议1.1版本不是直接就断开了,而是等几秒钟,这几秒钟是等什么呢,等着用户有后续的操作,如果用户在这几秒钟之内有新的请求,那么还是通过之前的连接通道来收发消息,如果过了这几秒钟用户没有发送新的请求,那么就会断开连接,这样可以提高效率,减少短时间内建立连接的次数,因为建立连接也是耗时的,默认的好像是3秒中现在,但是这个时间是可以通过咱们后端的代码来调整的,自己网站根据自己网站用户的行为来分析统计出一个最优的等待时间。

HTTP请求方法
GET		#只用在读取数据
POST	#向指定资源提交数据,请求服务器进行处理。数据被包含在请求本文中。
HEAD	#向服务器发出指定资源的请求。只不过服务器将不传回资源的本文部分。不必传输全部内容就可以获取所有信息。
PUT		#向指定资源位置上传其最新内容
DELETE	#请求服务器删除Request-URI所标识的资源
TRACE	#回显服务器收到的请求,用于测试或诊断
OPTIONS	#这个方法可使服务器传回该资源所支持的所有HTTP请求方法。
CONNECT	#HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。常用于SSL加密服务器的链接。
HTTP状态码
  • 1xx消息——请求已被服务器接收,继续处理
  • 2xx成功——请求已成功被服务器接收、理解、并接受
  • 3xx重定向——需要后续操作才能完成这一请求
  • 4xx请求错误——请求含有词法错误或者无法被执行
  • 5xx服务器错误——服务器在处理某个正确请求时发生错误
URL(统一资源定位系统)
  • 传送协议。
  • 层级URL标记符号(为[//],固定不变)
  • 访问资源需要的凭证信息(可省略)
  • 服务器。(通常为域名,有时为IP地址)
  • 端口号。(以数字方式表示,若为HTTP的默认值“:80”可省略)
  • 路径。(以“/”字符区别路径中的每一个目录名称)
  • 查询。(GET模式的窗体参数,以“?”字符为起点,每个参数以“&”隔开,再以“=”分开参数名称与数据,通常以UTF8的URL编码,避开字符冲突的问题)
  • 片段。以“#”字符为起点
HTTP请求格式(请求协议)

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

HTTP响应格式(响应协议)

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

什么是 Cookie?

是服务器发送到用户浏览器并保存在本地的一小块数据,它会在浏览器下次向同一服务器再发起请求时被携带并发送到服务器上。通常,它用于告知服务端两个请求是否来自同一浏览器,如保持用户的登录状态。Cookie
使基于无状态的 HTTP 协议记录稳定的状态信息成为了可能。

Cookie主要三个方面

  • 会话状态管理(如用户登录状态、购物车、游戏分数或其它需要记录的信息)
  • 个性化设置(如用户自定义设置、主题等)
  • 浏览器行为跟踪(如跟踪分析用户行为等)
什么是 Session?

Session 代表着服务器和客户端一次会话的过程。Session 对象存储特定用户会话所需的属性及配置信息。这样,当用户在应用程序的
Web 页之间跳转时,存储在 Session 对象中的变量将不会丢失,而是在整个用户会话中一直存在下去。当客户端关闭会话,或者
Session 超时失效时会话结束。

总结

Session是在服务端保存的一个数据结构,用来跟踪用户的状态,这个数据可以保存在集群、数据库、文件中;

Cookie是客户端保存用户信息的一种机制,用来记录用户的一些信息,也是实现Session的一种方式。

Cookie 和 Session 不同?
1、作用范围不同,Cookie 保存在客户端(浏览器),Session 保存在服务器端。

2、存取方式的不同,Cookie 只能保存 ASCII,Session 可以存任意数据类型,一般情况下我们可以在 Session 中保持一些常用变量信息,比如说 UserId 等。

3、有效期不同,Cookie 可设置为长时间保持,比如我们经常使用的默认登录功能,Session 一般失效时间较短,客户端关闭或者 Session 超时都会失效。

4、隐私策略不同,Cookie 存储在客户端,比较容易遭到不法获取,早期有人将用户的登录名和密码存储在 Cookie 中导致信息被窃取;Session 存储在服务端,安全性相对 Cookie 要好一些。

5、存储大小不同, 单个 Cookie 保存的数据不能超过 4K,Session 可存储数据远高于 Cookie。
为什么需要 Cookie 和 Session?

在这里插入图片描述

  1. 用户第一次请求服务器的时候,服务器根据用户提交的相关信息,创建创建对应的 Session ,请求返回时将此 Session的唯一标识信息 SessionID 返回给浏览器,浏览器接收到服务器返回的 SessionID 信息后,会将此信息存入到 Cookie中,同Cookie 记录此 SessionID 属于哪个域名。
  1. 当用户第二次访问服务器的时候,请求会自动判断此域名下是否存在 Cookie 信息,如果存在自动将 Cookie信息也发送给服务端,服务端会从Cookie 中获取 SessionID,再根据 SessionID查找对应的Session信息,如果没有找到说明用户没有登录或者登录失效,如果找到 Session 证明用户已经登录可执行后面操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值