###**Web**: 蜘蛛网,万维网(www,world wide web)的简称,webpage网页,website网站。 www是一个由超链接组成的系统,web客户端即浏览器可以输入URL(统一资源标识符)来访问web服务器端的资源,然后通过TTTP(超文本传输协议)传输给客户端。 **Internet** = web+服务。只是现在很多服务都通过浏览器来作为载体,所以现在经常混为一体。 常用的服务包括:E-mail(电子邮件);FTP,File Transfer Protocol(文件传输协议);Newsgroups(新闻组(讨论组)通常使用NNTP协议);远程登录(Telnet);手机 (3GHZ)等。 现在的邮件和网盘都是直接通过浏览器访问的了。 **组成**:服务器(Server)+浏览器(Browser)+通信协议 1. 服务器 1. 功能:存储内容、数据库访问、监听客户端连接请求、响应浏览器等。 2. 服务器产品:Tomcat、IIS、Apache等。 3. 服务器语言(技术):PHP,JSP,ASP,Python等。 2. 客户端,即浏览器 1. 功能:提交请求、解释执行HTML、图形化显示HTML。 2. 浏览器产品:谷歌、火狐、IE等。 3. 浏览器语言(技术):HTML、CSS、JavaScript。 ###**客户端语言:** 1. HTML,HyperText Markup Language (超文本标记语言)“超文本”就是指页面内可以包含图片、链接,甚至音乐、程序等非文字元素。HTML不是一种编程语言,而是一种标记语言 (markup language)。 2. CSS,Cascading Style Sheets(层叠样式表)W3C制定的编程语言。既然叫“样式”表,那么它就是用于定义如何显示 HTML 元素。CSS使得HTML写成的页面不那么单调,可以有各种颜色,大小等。 3. JavaScript,一种脚本语言,与Java语言没有关系,可插入HTML页面,使网页具有动态/交互性。 ###**服务器端语言**: 1. PHP:Symfony2,Zend。 2. Java:J2EE。 3. Python:Django。 4. Ruby:Ruby on Rails。 5. C#:ASP.NET。 ###**静态网页** Static Webpage .htm、.html 可以包含文本、图像、声音、FLASH动画、客户端脚本和ActiveX控件及JAVA小程序等。 没有后台数据库、不含程序和不可交互的网页。 也可以出现各种动态的效果,如GIF格式的动画、FLASH、滚动字幕等。 ###**动态网页 Dynamic Webpage 是以asp,jsp,php,aspx等结束** 通过数据库和编程来使网站具有更多自动的和高级的功能。 静态网页,你一旦用HTML和CSS写好,上传到服务器空间,以后每个用户访问你的网址看到的网页都是一样的;动态网页展示给每个用户一般是不一样的,例如可以注册用户的那些网站,肯定是动态网页。因为你登录后就看到自己的信息,其他人登录则看到他们自己的信息。 ###**内容管理系统**,Content Management System,CMS。 Wordpress,新手必备,博客。 Joomla,公司性质,图库。 Drupal,创造力,新建模块。 ###**数据库**: **关系型数据库**有: 1. MySQL:很著名的开源数据库,常用于博客系统。Wordpress使用的数据库就是MySQL。 2. PostgreSQL:MySQL的竞争对手。 3. SQL Server:Microsoft(微软)的数据库。一般和.NET配合使用。 4. Oracle:Oracle(甲骨文)公司的主要产品。 5. SQLite:很轻巧,就如它的名字里有lite(英语“淡的”)这个尾缀一般。在嵌入式领域使用还比较广泛,比如Android系统一开始默认使用SQLite数据库。 **非关系型数据库**: NoSQL分为四大类: 1. 键值(Key-Value)存储数据库:这一类数据库主要会使用到一个哈希表,这个表中有一个特定的键和一个指针指向特定的数据。Key/value模型对于IT系统来说的优势在于简单、易部署。但是如果DBA只对部分值进行查询或更新的时候,Key/value就显得效率低下了。举例如:Tokyo Cabinet/Tyrant, Redis, Voldemort, Oracle BDB。 2. 列存储数据库:这部分数据库通常是用来应对分布式存储的海量数据。键仍然存在,但是它们的特点是指向了多个列。这些列是由列家族来安排的。如:Cassandra, HBase, Riak。 3. 文档型数据库:文档型数据库的灵感是来自于Lotus Notes办公软件的,而且它同第一种键值存储相类似。该类型的数据模型是版本化的文档,半结构化的文档以特定的格式存储,比如JSON。文档型数据库可 以看作是键值数据库的升级版,允许之间嵌套键值。而且文档型数据库比键值数据库的查询效率更高。如:CouchDB, MongoDb。国内也有文档型数据库SequoiaDB,已经开源。 4. 图形(Graph)数据库:图形结构的数据库同其他行列以及刚性结构的SQL数据库不同,它是使用灵活的图形模型,并且能够扩展到多个服务器上。NoSQL数据库没有标准的查询语言(SQL),因此进行数据库查询需要制定数据模型。许多NoSQL数据库都有REST式的数据接口或者查询API。如:Neo4J, InfoGrid, Infinite Graph。 5. NoSQL数据库在以下的这几种情况下比较适用: a. 数据模型比较简单。 b. 需要灵活性更强的IT系统。 c. 对数据库性能要求较高。 d. 不需要高度的数据一致性。 e. 对于给定key,比较容易映射复杂值的环境。 ###**响应式网站的优点:** 1. 一个网站:适应所有设备,更容易管理。 2. 一个URL(可以简单理解为“网址”):让你的用户在移动设备上更容易找到,而且不需要任何的重定向,这在较慢的网速下特别有用。 3. 容易做搜索引擎优化:不需要为移动设备创建特定的内容,可以让移动设备使用桌面网站的搜索引擎优化的好处。 4. 易于营销:网站在移动设备上显示,对于营销部门来说不需要增加额外的工作量。 5. 成本低:简单的数学运算,一个网站比两个网站要便宜吧。 ###**响应式网站的缺点:** 1. 一个网站:让一个网站适配所有网站,对于你来说很容易,但不一定适合你的用户。你需要在同一个页面上展示不同的侧重点,以便使用该平台的最大优势,最大限度的提高你的转化率。 2. 技术:响应式设计是一种较新的技术,在一些老的设备和浏览器中加载页面速度过慢,甚至是完全不支持。 3. 用户体验:移动端和PC机上的用户体验是完全不同的。所以一个网,甚至是响应式设计,在两个平台上都会损害您整体的UX(User Experience,用户体验)。如果你试图使用相同的界面来满足移动和桌面的两个平台的用户使用,到最后可能谁都无法满足。 ###**Web App的优点:** 1. 用户体验:您有一个网站,是专门为移动设备创建的,考虑到平台的所有优点和局限性,有不错的用户体验。 2. 速度:您的网站在移动平台上加载更快,更轻松。 3. 成本:相对于响应式设计,创建一个移动网站并不便宜,但你仍然可以到一个非常合理的价格价的价值。 4. 立即访问:虽然比响应式设计没有额外的好处,但对于一个需要下载的安装的原生App,仍然发挥着它的作用。 ###**Web App的缺点:** 1. 多个URL:您的用户必须记住两个URL,或以其他的方式重定向到移动网站,这需要几秒钟的时间。而且移动网站还需要为SEO做额外的工作。例如:http://www.chinaz.com/ 是站长之家的主站域名,它的移动网站的域名是:http://m.chinaz.com/ 。 2. 维护:您必须得维护两个网站。 3. 没有普遍的一致性:你必须考虑到,有两种不同类型的移动设备:触摸屏和键盘导航。一个单一的移动网不以同样的方式在所有类型设备上工作。 ###**原生App的优点:** 1. 用户体验:Native App比任何移动优化方案都具有更好的用户体验。亲儿子,就是不一样。原生态,健康品。 2. 辅助功能和速度:应用程序可以运行,即使没有连接网络也可以访问您的所有信息。如果你足够幸运,拥有一支丰富的团队和良好的编码器,你的运用程序可以加载得更快,更顺利。 3. 可见性:一旦用户在移动设备上安装了,它就一直会显示在菜单中或在桌面上有一个独特的图标。 ###**原生App的缺点:** 1. 不能在所有设备上访问:你的应用程序是建立只是在一个特定的操作系统,这意味着iOS系统上的应用不能在别的设备上访问。 2. 不具灵活性:所有的应用程序更新都必须通过应用程序商店(例如苹果的App Store和谷歌的Google Play),每次提交都得获得批准,这有可能需要长达几个星期的时间。而且不是每个用户都很乐意于频繁的更新,有些人会一直使用旧的版本。 3. 成本高:原生App的开发显然是众多解决方案中最贵的一种。 4. 营销和搜索引擎优化:需要一个完全不同的营销策略来推广你的应用程序,你可以需要一个专业的移动营销人员帮忙。 ###**IP是Internet Protocol的简称,英语意为“互联网协议”。** IPv4和IPv6是IP地址的不同版本,v4就是第四版(v是英语version的首字母,version意为“版本”),那么v6就是第六版。 IPv4的地址长度为32位(共有2^32(2的32次方)个IP地址),分为4段,每段8位,用十进制数字表示,每段数字范围为0~255,段与段之间用句点隔开。例如159.226.13.1。 IPv6的地址长度为128位(共有2^128(2的128次方)个IP地址),分为8段,每段16位,用十进制数字表示,每段数字范围为0~65535,段与段之间用句点隔开。如果每个16位用16进制表示,那么例如1080:0000:0000:0000:0008:0800:200C:417A。 DNS,Domain Name System(域名系统)域名必须对应一个IP地址,而IP地址不一定有域名。 协议 TCP,一个端到端(Peer-to-Peer)的传输层协议,处于应用层和网络层之间。 IP协议(Internet Protocol,互联网协议或网际协议)IP层接收由更低层(网络接口层例如以太网设备驱动程序)发来的数据包,并把该数据包发送到更高层---TCP或UDP层;相反,IP层也把从TCP或UDP层接收来的数据包传送到更低层。 UDP是User Datagram Protocol(用户数据报协议) HTTP,HyperText Transfer Protocol(超文本传输协议) HTTP的交换信息(返回码 200 表示成功): **HTTPS** HyperText Transfer Protocol Secure(安全的超文本传输协议)的缩写,比HTTP多加了一层安全防护。我们有时登录一些网站,就可以看到地址栏最前面变为了https:// 这样开头的的。Https协议在Http协议的基础上,添加了SSL/TLS握手以及数据加密传输,也属于应用层协议。 **FTP协议** File Transfer Protocol(文件传输协议)的缩写。是一套允许文件在不同的Internet计算机之间进行交换的规则。它与HTTP不同,后者供网页浏览器请求网页和相关文件以显示某一页面,FTP只是用来将文件FTP协议FTP协议从一台计算机传送到另一台。网站开发人员通常使用FTP将网页从他们自己的计算机传送到服务器,FTP也常常用来将程序和文件从其他服务器下载到个人计算机。 **SMTP协议** Simple Mail Transfer Protocol(简单邮件传输协议)的缩写。是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。SMTP协议属于TCP/IP协议簇,它帮助每台计算机在发送或中转信件时找到下一个目的地。 ###**职位:** **FrontEnd**:Frontend是英语“前端”的意思。一般我们所说的Web Frontend就是指“Web前端程序员”。主要负责网站的外观,也就是“颜值”担当。一般精通HTML,CSS和JavaScript等客户端语言。 BackEnd:BackEnd是英语“后端”的意思。一般我们所说的Web Backend就是指“Web后端程序员”。与Web前端程序员配合,主要负责网站服务器端的编写和维护,也就是“功能”担当。一般精通PHP,Java,Python,Ruby或C#等服务器端语言。 **QA Manager**:QA市Quality Assurance(质量保证)的意思,manager是“主管”的意思。所以QA Manager就是我们平时所说的“质量主管”,他可以充当客户的角色,来使用网站。负责网站的正确运行,对网站的质量进行监控,如果有什么问题或有什么需要的新功能,会通知Frontend,Backend或System Administrator来处理。可以想象是一个医生,确诊网站的“疾病”,对网站的健康负责。 **System Administrator**:System是“系统”的意思,Administrator是“管理员”的意思。所以System Administrator就是我们平时所说的“系统管理员”。他就好像一个很厉害的老工程师傅,可以想象提着一个工具箱,到机房里去修修弄弄(当然其实并不见得是这样)。他保证Web的服务器可以正常运作,负责一些硬件的维修和管理,使网络畅通无阻,而且一般的SA都熟悉Linux技术,至少会用Linux命令行吧。 **Full Stack**:Full是“全部,完全的”的意思,Stack是“栈”的意思。所以Full Stack就是我们平时所说的“全栈程序员”或“全栈工程师”。他就好像一个“全能骑士”或者身怀绝技的“日本武士”,可以做以上四个职位的所有任务。当然,要成为全栈工程师是很辛苦的,因为什么都要会。骚年,珍爱生命,还是悠着点吧。