1 WEB系统概述
1.1 什么是WEB
WEB本意是蜘蛛网的意思,在计算机领域统称为万维网,在网页设计中我们称为网页的意思。现广泛译作网络、互联网等技术领域。表现为三种形式,即超文本(hypertext)、超媒体(hypermedia)、超文本传输协议(HTTP)等。
一、超文本(hypertext)
超文本是一种用户接口范式,用以显示文本及与文本相关的内容。现时超文本普遍以电子文档的方式存在,其中的文字包含有可以链接到其他字段或者文档的超文本链接,允许从当前阅读位置直接切换到超文本链接所指向的文字。
超文本的格式有很多,最常使用的是超文本标记语言(标准通用标记语言下的一个应用)及富文本格式(RTF)。我们日常浏览的网页都属于超文本。
超文本链接一种全局性的信息结构,它将文档中的不同部分通过关键字建立链接,使信息得以用交互方式搜索。
二、超媒体(hypermedia)
超媒体是超文本(hypertext)和多媒体在信息浏览环境下的结合。它是超级媒体的简称。用户不仅能从一个文本跳到另一个文本,而且可以激活一段声音,显示一个图形,甚至可以播放一段动画。
Internet采用超文本和超媒体的信息组织方式,将信息的链接扩展到整个Internet上。Web就是一种超文本信息系统,Web的一个主要的概念就是超文本链接。它使得文本不再像一本书一样是固定的线性的,而是可以从一个位置跳到另外的位置并从中获取更多的信息,还可以转到别的主题上。想要了解某一个主题的内容只要在这个主题上点一下,就可以跳转到包含这一主题的文档上。正是这种多连接性把它称为Web。
三、超文本传输协议(HTTP)HyperText Transfer Protocol超文本在互联网上的传输协议
1.2 技术角度看WEB
从技术的角度来看,Web技术包含前端开发和后端开发:
一、Web前端开发,主要职责是利用(X)HTML/CSS/JavaScript/Flash等各种Web技术进行客户端产品的开发。完成客户端程序(也就是浏览器端)的开发,开发JavaScript以及Flash模块,同时结合后台开发技术模拟整体效果,进行丰富互联网的Web开发,致力于通过技术改善用户体验。
二、Web后台开发,主要是框架、逻辑事务、数据库等开发。涉及到JSP/servlet,PHP,C#,AJAx,SSH,sqlserver,oracle.
1.3 使用角度看WEB
从网络使用环境的角度来看,Web就是我们平常使用浏览器上网时所浏览的网页
1.4 网页
一、简述
网页,是网站中的一「页」,通常是HTML(标准通用标记语言下的一个应用)格式(文件扩展名为.html或.htm或.asp或.aspx或.php或.jsp等)。网页通常用图像档来提供图画。网页要透过网页浏览器来阅读。
网页是构成网站的基本元素,是承载各种网站应用的平台。通俗的说,您的网站就是由网页组成的。如果您只有域名和虚拟主机而没有制作任何网页的话,您的客户仍旧无法访问您的网站。
所谓网站(Website),就是指在网际网路(因特网)上,根据一定的规则,使用HTML等工具制作的用於展示特定内容的相关网页的集合。简单地说,网站是一种通讯工具,就像布告栏一样,人们可以通过网站来发布自己想要公开的资讯(信息),或者利用网站来提供相关的网路服务(网络服务),又或收集想要的信息。人们可以通过网页浏览器来访问网站,获取自己需要的资讯(信息)或者享受网路服务。
二、什么是网页
在你眼前,出现在显示器上的这个 “ 东西 ” ,就是一个网页。网页实际是一个文件,他存放在世界某个角落的的某一台计算机中,而这台计算机必须是与互联网相连的。网页经由网址( URL )来识别与存取,当我们在浏览器输入网址后,经过一段复杂而又快速的程序,网页文件会被传送到你的计算机,然后再通过浏览器解释网页的内容,再展示到你的眼前。
三、构成网页的元素
文字与图片是构成一个网页的两个最基本的元素。你可以简单的理解为:文字,就是网页的内容,图片,就是网页的美观。除此之外,网页的元素还包括动画、音乐、程序等等。
在网页上点击鼠标右键,选择菜单中的 “ 查看源文件” ,就可以通过记事本看到网页的实际内容。可以看到,网页实际上只是一个纯文本文件,它通过各式各样的标记对页面上的文字、图片、表格、声音等元素进行描述(例如字体、颜色、大小),而浏览器则对这些标记进行解释并生成页面,于是就得到你现在所看到的画面。 为什么在源文件看不到任何图片?网页文件中存放的只是图片的链接位置,而图片文件与网页文件是互相独立存放的,甚至可以不在同一台计算机上。
四、网页的类型
通常我们看到的网页,都是以 htm 或html后缀结尾的文件,俗称 HTML文件。不同的后缀,分别代表不同类型的网页文件,例如以 CGI 、 ASP 、 PHP 、 JSP 甚至其他更多。
五、网页的分类
网页有多种分类,我们笼统意义上的分类是动态和静态的页面,原则上讲静态页面多通过网站设计软件来进行重新设计和更改,相对的比较滞后,当然有网站管理系统,也可以生成静态页面~我们称这种静态页面为伪静态。动态页面通过网页脚本与语言自动处理自动更新的页面,比方说贴吧,他就是通过网站服务器运行程序,自动处理信息,按照流程更新网页。
1.5 WEB版本介绍
一、Web 1.0
Web 1.0 是关于来自一些主要的公司,如:eBay, and Google 的杀手级的应用程序的出现。我们一直认为它们仅仅是网站,但它们实际上是一些令人惊讶的应用程序:功能丰富,容易上手,扩展性强,这些特性以前很少被普通消费者看到过。交易,不仅仅是针对货物的,还有知识的,变的普遍和即时。效率,透明,这个曾经是全球金融市场的领域,被个人消费者和商业者占领。 Web 1.0在今天依旧是很大的推动力并且在将来持续很长时间。
二、Web 2.0
Web 2.0是关于互联网上的下一代应用程序,特点是用户产生内容,合作化,社区化。任何人可以参与到内容的创建中。在YouTube上上传一个视频,在 Flickr上上传参加聚会的照片,或者在Blogspot上写自己的政治见解,所有这些都不需要专门技术,仅仅需要连接上互联网。参与改变了我们对于内容的理解:内容不是固定在发布商那里,它是活动在任何地方的。Google的AdSense带来了一个即时的商业模式,尤其对于博客作者,并且视频共享网站已经重写了流行文化和内容过滤的规则。
当你围绕Web1.0或者2.0创业的时候,建设一个安全的,可扩展的数据中心并不是一项容易的工作。对于进入把软件当成服务的行业,大量的时间和资本依 旧是进入的一个门槛。而且,传统的客户端-服务器的软件开发依然复杂。并且创建一个成功的应用程序还需要辛勤的部署和维护。
三、Web 3.0
Web 3.0通过改变传统软件行业的技术和经济基础来改变现有的一切。新的Web 3.0强调的是任何人,在任何地点都可以创新。代码编写,协作,调试,测试,部署,运行都在云计算上完成。当创新从时间和资本的约束中解脱出来,它就可以欣欣向荣。
对于企业来说,Web 3.0意味着SaaS程序可以比传统的C-S软件更快,更高效的开发,部署,升级。
对于开发者来说,Web 3.0意味着他们需要创建一个理想的应用程序东西需要的仅仅是一个想法,一个浏览器。因为世界上的每一个开发人员都可以访问强大的云计算,Web 3.0是全球经济的推动力。
对于独立软件开发商,Web 3.0意味着他们可以花费更多的时间专注提供给客户的核心价值上,而不是支持它的基础架构。因为代码生长在云计算上,全球的精英可以为它做贡献。因为它运行在云计算上,全球的市场都可以把它作为服务来订阅。
四、Web4.0
在Web3.0里,人类可以随心所欲地获取各种知识,当然这些知识都是先人们即时贡献出来的。这里的即时性,指的就是学堂里老师教学生的即时性。从Web3.0开始,网络就具备了即时特性。 但人们并不知道自己应该获取怎样的知识,即自己适合于学习哪些知识。比如一个10岁的孩子想在20岁的时候成为核物理学家,那么他应该怎样学习知识呢?这些问题就是Web4.0的核心--知识分配系统所要解决的问题了。
五、Web5.0
说到语用网,才真正进入了我的研究领域。技术的发展虽然令人眼花缭乱,但其背后的本质却十分简单。现有的计算机技术都是图灵机模型,简单地讲,图灵机就是机械化、程序化,或者说算术,以数据和算符(算子)为2元的闭合理论体系。图灵机是研究和定义在数据集上的算子规律或法则的数学科学。 在网络世界里,这个封闭系统都要联合起来,成为一个整体,所谓的整个网络成为一台计算机系统了。而这台计算机就不再是图灵机了,而是Petri网了。早在20多年前,Petri就说过,实现Petri网的计算机系统技术叫语用学。因此语用网才是这台计算机的技术基础。
2 HTTP协议
HTTP是Hyper Text Transfer Protocol(超文本传输协议)的缩写,它是应用层协议,默认端口号是80,HTTP是一个无状态的协议(即每次请求是相互独立的),它本身是面向无连接的,但它在传输层使用了面向连接的TCP协议,现在普遍使用的版本是HTTP 1.1,HTTP报文分为请求报文和响应报文,WEB系统中使用的就是HTTP协议,工作流程如下图:
http.jpg
(HTTP协议请求响应模型)
一次HTTP请求操作称为一个事务,其工作过程分为四个步骤:
一、建立TCP连接
因为HTTP协议在传输层使用的是TCP协议,所以客户端与服务器需要先建立连接,如点击某个超链接、提交注册信息等,HTTP协议开始工作
二、发送HTTP请求报文
建立TCP连接后,客户端发送一个HTTP请求报文给服务器,HTTP请求报文的格式如下图:
(HTTP请求报文)
三、做出响应
服务器在收到客户端发出的HTTP请求后,服务器程序对该请求进行处理,最终给予相应的响应信息,HTTP响应报文如下图:
image.png(HTTP响应报文)
四、断开连接
客户端接收到服务器发送的HTTP响应后,浏览器会自动解析HTTP响应报文中的信息,并显示,然后客户端与服务器断开连接,在Http响应报文中通常包含三种客户最终看到的结果数据:
1)、Flash动画,如QQ农场和牧场
2)、流数据,如下载文件
3)、Html页面,这是最常见的结果,我们上新浪网看新闻,主页面就是Html网页
2.1 Get请求和Post请求
Http定义了与服务器交互的不同方法,最基本的方法有4种,分别是GET,POST,PUT,DELETE。URL全称是资源描述符,我们可以这样认 为:一个URL地址,它用于描述一个网络上的资源,而HTTP中的GET,POST,PUT,DELETE就对应着对这个资源的查,改,增,删4个操作。到这里,大家应该有个大概的了解了,GET一般用于获取/查询资源信息,而POST一般用于更新资源信息。
但最常用的是GET和POST,称为GET请求和POST请求,如在浏览器中输入www.sina.com进入新浪网,将发出GET请求;提交邮箱注册信息,将发出POST请求等等,GET请求和POST请求比较如下:
1)、通常Get用来从服务器上获得数据,而Post用来向服务器提交递数据
2)、请求URL:Get请求时,请求的数据是追加到URL后面,因此为显示在浏览器地址栏中,也称为显示提交;以?分割URL和传输数据,参数之间以&相连,如:login.action?name=hyddd& password=idontknow&verify=%E4%BD%A0%E5%A5%BD。如果数据是英文字母/数字,原样发送,如果是空 格,转换为+,如果是中文/其他字符,则直接把字符串用BASE64加密,得出如:%E4%BD%A0%E5%A5%BD,其中%XX中的XX为该符号以 16进制表示的ASCII。而Post请求时,请求的数据是放在HTTP请求体中,因此不会显示在浏览器地址栏中,也称为隐式提交;所以,在提交一些比较重要的数据时,强烈建议使用Post请求,如登录网银、提交注册信息等等
3)、传输数据量:Get传输的数据量小,这主要是因为受URL长度限制;而Post可以传输大量的数据,理论上POST没有限制,所以在上传文件时只能使用Post,Post传输的数据大小限制在服务器中可以配置
4)、POST的安全性要比GET的安全性高。注意:这里所说的安全性和上面GET提到的“安全”不是同个概念。上面“安全”的含义仅仅是不作数据修改,而这里安全的含义是真正的Security的含义,比如:通过GET提交数据,用户名和密码将明文出现在URL上,因为:(1)登录页面有可能被浏览器缓存;(2)其他人查看浏览器的历史纪录,那么别人就可以拿到你的账号和密码了,除此之外,使用GET提交数据还可能会造成Cross-site request forgery攻击。
示例:
image.png
image.png
3常用端口
端口号的范围是从1~65535。
其中1~1024是被RFC 3232规定好了的,被称作“众所周知的端口”(Well Known Ports);
从1025~65535的端口被称为动态端口(Dynamic Ports),可用来建立与其它主机的会话,也可由用户自定义用途。
3.1一些常见的端口号及其用途如下:
21端口:FTP 文件传输服务
22端口:SSH 远程连接服务
23端口:TELNET 终端仿真服务
25端口:SMTP 简单邮件传输服务
53端口:DNS 域名解析服务
80端口:HTTP 超文本传输服务
443端口:HTTPS 加密的超文本传输服务
3306端口:MYSQL数据库端口
5432端口:postgresql数据库端口
6379端口:Redis数据库端口
8080端口:TCP服务端默认端口
8888端口:Nginx服务器的端口
9200端口:Elasticsearch服务器端口
27017端口:mongoDB数据库默认端口
22122端口:fastdfs服务器默认端口
4 相关概念
4.1 Cookie和Session
HTTP 协议 ( 超文本传输协议 ) 是无状态的,不能保存客户端与服务器之间通讯 ( 交互 ) 的信息。
打个比方,拿最常见的登录来说,现在好多网站的操作都需要用户登录,假如在 a 操作时,用户成功登录系统,再进行 b 操作时,由于 HTTP 协议是无状态的,
用户之前登录的信息并没有被记录下来。那么,用户需要再次登录系统才能继续操作,以此类推,每个操作都需要登录一次系统,这是非常可怕的事情。
cookie 和 session 技术的诞生,都是为解决 HTTP 无状态协议所带来的系列问题。它们可以维护用户与服务器间的会话状态。
4.1.1 Cookie
#######1)、Cookies在浏览器端(即客户端),浏览器会自动存储数据到Cookies中(服务器通过http响应告知浏览器将某些数据存储到Cookies中);
#######2)、Cookie 数据由浏览器按照一定的原则在后台自动发送给服务器(数据放在http请求中的请求头);
#######3)、单个Cookie在客户端的限制是3K,就是说一个站点在客户端存放的Cookie不能超过3K;
#######4)、Cookies中的数据不安全,银行卡和密码等重要的数据绝对不能存储在Cookies中;
#######5)、使用Cookies的例子:广告定投(搜索本地浏览器中的Cookies数据实现)、购物站点(购物车:服务器将数据保存在浏览器端的Cookies,若禁止Cookies,则商品不能加入到购物车)。
4.1.2 Session
Session即会话,表示浏览器与服务器一系列请求的集合,每个Session都有一个唯一的标识(服务器内部保证它的唯一性),即sessionId,服务器通过它来区分不同的客户端(客户端第一次发送请求给服务器时,服务器为其分配唯一的sesisonId),数据存储到Session中是指:将数据存储到服务器的内存中,因此Session需要占用服务器的资源,如内存等,当大量的用户访问服务器时,服务器的压力是非常大的,为了杜绝资源的浪费,保证服务器资源合理被有效用户利用,需要一种机制来回收无效的Session,以释放其占用的内存资源,会话超时是非常不错的选择,会话的默认超时时间是30分钟,即客户端在30分钟之内没有发送http请求给服务器,服务器就会认为它是无效用户了,随即回收该客户端所占用的内存资源
4.1.3 Cookie和Session的区别与联系
1)、Cookie是客户端机制,Session服务器端机制,数据存储在Session中比存储在Cookie中要安全
2)、客户端首次发送http请求到服务器端时,服务器会为其分配sessionId,并且将sessionId存储到客户端的Cookies(sessionId不一定要放到客户端的Cookies中),客户端再次发送的HTTP请求中一定会包含该sessionId,服务器收到该请求包发现已经存在有效的sessionId,因此认为两次请求是在同一个会话中
4.2 B/S架构和C/S架构
C/S(Client/Server)指客户机和服务器,在客户机端必须装客户端软件后才能访问服务器,如QQ、飞信等,如下图:
(C/S架构)
B/S(Browser/Server)指浏览器和服务器端,在客户机端不用按装专门的软件,只要一个浏览器即可,B/S架构是典型的C/S架构,B/S系统使用Http协议,,如下图
B/S架构
网友评论