http:超文本传输协议
FTP:文件传输协议(最早的协议)
考试内容:web技术基础,http协议基础,HTML基础,css基础,js程序设计基础,动态网页技术概述
考试方式:上机,考试时长120分钟,满分100,单选40分,操作60分,
web–internet与web技术的基础概念
internet:因特网,全球性的计算互联网络“信息共享”。以相互交流信息资源为目的,基于一些共同协议,并通过许多路由器和公共互联网而成,是一个信息资源和资源共享的集合
web技术:开发互联网应用的技术总称,一般包括web服务端技术(负责网页数据处理,后端)和web客户端技术(前端)
二者关系:web是internet上最流行的应用之一,internet为web提供了网络运行环境,web的出现推动了Internet的普及和推广
web技术的主要组成
本地计算机和远程计算机
本地计算机:用户自己浏览站点的本地机器
远程服务器:为客户端计算器提供各种服务的高性能计算机,主要功能是接受客户浏览器发送的请求,分析请求,并给予响应,相应的结果发送给客户端的浏览器
静态和动态页面
静态页面:HTML页面文件
动态页面:页面的内容是动态交互的,可以根据系统的设置显示不同的页面。常用动态网页开发技术(ASP,JSP,PHP,ASP.NET(使用它开发的网页,其文件扩展名应命名为.aspx等)
web应用程序的工作原理
浏览器访问过程:
(1)地址栏输入想访问网站首页的地址
(2)用户向浏览器发送访问首页的请求
(3)服务器收取客户端的访问请求
(4)服务器处理请求(如果首页为动态文档需经过数据处理再返回,反之直接返回该文档)
(5)服务器将请求的处理结果在客户端的浏览器显示
web浏览器与服务器的基本概念和工作原理
web浏览器的基本概念
一个运行在用户的机器上用来展现和浏览来在web服务器或本地文件系统中HTML页面,并让用户和这些页面交互的客户机软件
web浏览器的工作原理
通过HTTP协议和web服务器交互并获取网页,这些网页由URL(统一资源定位服务,一个完整的路径(网址))指定,格式通常为HTML
在URL中默认的web服务器的端口是80
web服务器的基本概念
含义:提供web服务的服务器,常见的有:IIS,Apache,Tomcat等
web基本结构
c/s的含义:Client/Server,服务器安装高性能pc,工作站,并采用大型数据库系统,客户机安装专用的客户机端软件,服务器安装专门的服务器软件。
B/S的含义:Browers/Server。客户机仅仅安装一个浏览器,服务器安装IIS,或着Apache,或数据库,目前常用,三成架构:含义是在客户机端浏览器和数据库中间加一个中间层。分类:系统部署三层结构和软件开发三层结构
web技术发展史:静态文档,动态网页(交互),web2.0(每个都是主角)
web应用开发构架和开发技术
web应用架构划分为两大子类:前端子系统和后台子系统
前端开发框架:jQuery,Extjs,Flex等
后台子系统:基础技术Java Servlet;开发框架:Struts,spring,Hibernate,ibatis等;应用服务器:Tomcat/Jetty
http的基本概念和交互模型
HTTP是Hyper Transfer Protocol的缩写,是一个应用层协议,由请求和响应构成,是一个标准的客户端服务器模型,HTTP是一个无状态的协议
特点:
1,无连接–限制每次连接只处理一个请求
2,无状态–协议对于事物处理没有记忆能力
3,简单快速–客户向服务器请求服务时,只需传送请求方法和路径
4,灵活–HTTP允许传输任意类型的数据对象,正在传输的类型由Content-Type加以标记
http的消息格式
分为两种:请求信息,响应信息。
请求消息:包括三部分,请求方法URL协议,请求头,请求体等
响应消息:状态行,消息报头,响应正文等
请求和响应的消息和方法
HTTP的请求消息
cookie:浏览器用这个属性向服务器发送Cookie,Cookie是在浏览器中寄存的小型数据体,可以记载和服务器相关的用户信息,也可以用来实现会话功能。
Referer:表明产生请求的网页URL,可以用来跟踪web请求是从什么网站来的
User-Agent:是用户浏览器名称
Content-Type:用来表明request的内容类型,可以用HttpServletRequest的getContentType()方法获得。
Accept-Charset:指出浏览器可以接受的字符编码,英文浏览器的默认值是ISO-8859-1
Accept-Encoding:指出浏览器可以接受的编码方式,编码方式不同于文件格式,它是为了压缩文件并加速文件传递速度,浏览器在接收到web响应之后先解码,然后在检查文件格式
HTTP常用请求方法:
GET方法
GET方法用于使用给定的URL从给定服务器中检索信息,即从指定资源中请求数据。使用get方法的请求应该只是检索数据,不应对数据产生其他影响。
在GET请求的URL中发送查询字符串(名称/值对),需要写成:/test/demo_form.php?name1=value1&name2=value2
说明:
GET请求是可以缓存的,可从浏览器历史记录中查找到GET请求,还可以把他搜藏到书签中;且GET请求有长度限制,仅用于请求数据(不修改)
注:因GET请求的不安全性,在处理敏感数据时,绝不可以用GET请求。
POST方法
用于将数据发送到服务器以创建或更新资源,它要求服务器确认请求中包含的内容作为由URL区分的web资源的另一个下属
POST请求永远不会被缓存,且对数据长度没限制,无法从浏览器历史记录中查找到POST请求
HTTP响应消息和常用响应状态
HTTP/1.1 200 OK//响应状态行
Date:Mon,30 Jul 2018 02:50:55 GMT //服务端发送资源时的服务器时间
Expires:Wed, 31 Dec 1969 23:59:59 GMT//比较过时的一种验证缓存的一种方式,与浏览器(客户端)的时间比较,超过这个时间就不用缓存(不和服务器进行验证),适合版本比较稳定的网页
Cache-Control:no-cache//现在最多使用的控制缓存的方法,会和服务器进行缓存验证
etag:“fb8ba2f80b1d324bb997cbe188f28187-ssl-df”//一般是Nginx静态服务器发来的静态文件签名,浏览器在没有“Disabled
cache"情况下,接收到etag后,同一个URL第二次请求就会主动带上"If-None-Match"
Last-Modified:Fri,27 Jul 2018 11:04:55 GMT//是服务器发来的当前资源最后一次修改的时间,下次请求时,如果服务器上当前对修改时间大于这个时间,就会返回新的资源内容
Content-Type:text/html;charset=utf-8// 如果返回是流式的数据,我们就必须告诉浏览器这个头,不然浏览器会下载这个页面,同时告诉浏览器是utf8编码,否则可能出现乱码
Content-Encoding:gzip//告诉客户端,应采用gzip对资源进行解码
Connection:keep-alive//告诉客户端服务器的TCP连接也是一个长连接
HTTP常用响应状态
HTTP状态码分类
由三个十进制数字组成,第一个十进制数字定义了状态码的类型,后两个数字没有分类的作用。
HTTP状态码共分为5种类型:
1**:信息,服务器收到请求,需要请求者继续执行操作
2**:成功,操作被成功接受并处理
3**:重定向,需要进一步操作以完成请求
4**:客户端错误,请求包含语法错误或无法完成请求
5**:服务器错误,服务器在处理请求的过程中发生了错误
HTTP常用消息头
请求消息头:
GET/sample.Jsp HTTP/1.1;从前往后分别代表请求方式,当前的技术,版本
Host:www.uuid.online/;请求的目标域名和端口号
Origin:http://localhost:8081/;请求的来源域名和端口号(跨域请求时,浏览器会自动带上这个头消息)
Referer:https:/localhost:8081/link?query=xxxxx;请求资源的完整URL
User-Agent:Mozilla/5.0(Windows NT 10.0;Win64;x64)AppleWebKit/537.36(KHTML,like Gecko)Chrome/67.0.3396.99 Safari/537.36;浏览器信息
Cookie:BAIDUID=FA89F036:FG=1;BD_HOME=1;sugstore=0 ;当前域名下的Cookie
Accept:text/html,image/apng;代表用户端需要接受的数据类型是html或是png图片类型
Accept-Encoding:gzip,deflate;代表用户端能支持的gzip和deflate格式的压缩
Accept-Language:zh-CN,zh;q=0.9;代表客户端可以支持的语言zh-CN或者zh(值得一提的是q(0~1)是优先权重的意思,不写默认为1,这里zh-CN是1,zh是0.9)
Connection:keep-alive;告诉服务器,客户端需要的TCP连接是一个长连接
响应消息头:
HTTP/1.1 200 OK;响应状态行
Date:Mon,30 Jul 2018 02:50:55 GMT;服务器发送资源的服务器时间
Expires:Wed,31 Dec 1969 23:59:59 GMT;比较过时的一种验证缓存的方式,与浏览器(客户端)的时间比较,超过这个时间就不用缓存(不和服务器进行验证)适合版本比较稳定的网页
Cathe-Control:no-catch;现在最多使用的控制缓存的方式,会和服务器进行缓存验证
Last-Modified:Fri,27 Jul 2018 11:04:55 GMT;是服务器发送来的当前资源最后一次修改的时间,下次请求时,如果服务器上当前资源的修改时间大于这个时间,就返回新的资源内容
Content-Type:text/html;charset=utf-8;如果返回是流式的数据,我们必须就要告诉浏览器这个头,不然浏览器就会下载这个页面,同时告诉浏览器是utf8编码,否则可能出现乱码
Content-Encoding:gzip;告诉客户应该采用gzip对资源进行解码
Connection:keep-alive;告诉客户端服务器的TCP连接也是一个长连接
HTML文档的基本结构和语法
html的概念
HTML(Hyper Text Markup Language)超文本标记语言,1990年创立的,是一种标识性的语言。它包括一系列标签,通过这些标签可以将网络上的文档格式统一,使分散的Internet资源连接为一个逻辑整体,HTML文本是由HTML标记组成的描述性文本,HTML标记可以说明文字,图形,动画,声音,表格,链接等
HTML文档也叫WEB页面,通过一系列标签,来显示网页的不同效果,不同部分,浏览器是HTML的解析器,解析HTML的文件,然后在浏览器窗口中展示解析页面
:是整个超文本标记语言文件的开始标记和结尾标记 ## css的基本概念 css中文意思叫层叠样式表(英文全称:Cascading Style sheets)是一种用来表示HTML等文件样式的计算机语言,css不仅可以静态的修饰网页,还可以配合各种脚本语言动态地对网页各种脚本语言动态的对网页各元素进行格式化 1.几乎所有的浏览器上都可以使用 2.以前一些非得通过图片转换实现的功能,现在只要用css就可以轻松实现,从而更块下载页面 3.使页面的字体变得更加漂亮,更容易编排,使页面真正的赏心悦目 4.可轻松地控制页面的布局 5.可以将许多网页的风格格式同时更新,不用在一页一页的更新 1)每个css样式由两个部分组成,即选择符和声明,声明又分为属性和属性值 选择符{属性:属性值;属性:属性值} 选择符:表示要定义样式的对象
css单位
%百分比
in英寸
cm厘米
mm毫米
em 1em等于当前的字体尺寸,2em等于当前字体尺寸的两倍,它可自动适应用户所使用的字体
ex 一个ex是一个字体的x-height,x-height通常是字体尺寸的一半
pt 磅(1pt等于1/72英寸)
pc 12点活字(1pc等于12点,1pc等于12pt)
px 像素(计算机屏幕上的一个点)
1in=2.54cm=25.4mm=72pt=6pc
程序三大结构
顺序结构:表示程序中的各种操作是按照它们出现的先后顺序执行的,程序按照从上到下的顺序执行
window.prompt()返回一个输入框,输入的是字符串,+可以将字符串数字转换成真正的数字
var num=+prompt('输入一个数字:')
var num=+prompt('输入一个数字:')js中的常用内置对象
在js中万物皆对象
本地对象:ECMA把本地对象定义为“独立于宿主环境的ECMAScript实现提供的对象”,简而言之,本地对象就是ECMA定义的类(引用类型),包括:Function Array Object String Boolean Number
Date Math
宿主对象:所有非本地对象都是宿主对象,即由ECMAScript实现的宿主环境提供的对象,所有BOM和DOM对象都是宿主对象
BOM:浏览器对象模型
DOM:文档对象模型
数组对象的方法:
push()可以接收任意数量的参数,把他们逐个添加到数组末尾,并返回修改后数组的长度
pop()从数组末尾移除最后一项,减少数组的length值,然后返回移除的项
sort()按字母表升序排列数组项
splice()对数组进行删除,插入,替换,是最强大的数组方法,返回值是数组,改变原数组,两个参数,第一个为开始删除的索引,第二个参数是删除/插入/的长度
join()将数组转换成对应的字符串,参数就是连接符
自定义对象
构造函数创建对象:
var obj=new Object()
字面量创建对象:
var obj={}
数字和对象的遍历
for循环只能够遍历数组,获取数组中每一项的值
for…in循环可遍历数组和对象,最好是遍历对象
var num=+prompt('输入一个数字:')
var obj={
name:'zhangshan',
age:12,
sex:'女'
};
for(var att in obj){//att:表示对象的属性名
console.log(att)
console.log(obj[att]);//属性名后的值不能用点来获取,因为点操作符后面只能跟字符串,而att是变量
}
var num=+prompt('输入一个数字:')
var obj={
name:'zhangshan',
age:12,
sex:'女'
};
for(var att in obj){//att:表示对象的属性名
console.log(att)
console.log(obj[att]);//属性名后的值不能用点来获取,因为点操作符后面只能跟字符串,而att是变量
}字符串对象
字符串的两种创建方式:
构造函数,当我们使用字符串的方法和属性时,系统临时创建,返回object
var str=new String(‘hello’);
字面量,返回string
var str1=‘hi’
字符串属于类数组,类数组的概念:也叫伪数组,在js中有一些对象它也拥有length属性,且拥有为非负整数的属性(索引),但它又不能调用数组的方法,这种对象被称为类数组对象。
字符串的方法:
trim()创建一个字符串的副本,删除前置及后缀的所有空格,然后返回结果
split 根据分隔符,将字符串拆分成数组
substring():用来截取字符串的内容,两个参数,参1:截取的起始位置的索引 ,参2:截取结束位置的索引,不包括结束位置
toUpperCase():转换大小写
toLowerCase():转换成小写
js内置对象
js常用的数学方法:
Math.round():将括号里的数字用四舍五入形式取整
Math.ceil():将括号里的小数采用向下取整
Math.floor():将括号里面的小数采用向下取整
Math.pow():求幂,第一个参数是底数,第二个参数是指数
Math.max():求括号里面数字的最大值,数字之间用逗号隔开
Math.min():求括号里面数字的最小值,数字之间逗号隔开
Math.random():随机数[0,1)
BOM基本概念和作用
BOM:Browser Object Model 浏览器对象模型,用来描述与浏览器进行交互的方法和接口
BOM提供了很多对象,用于访问浏览器的功能,这些功能与任何网页内容无关
BOM核心对象是window,它表示浏览器的一个实例,window对象有双重角色,它既是通过js访问浏览器的一个接口,又是ECMAScript规定的全局对象,这意味着在网页中定义的任何一个对象,变量和函数,都以window作为全局对象
BOM下面的子对象
1.location:控制浏览器的地址栏
href属性:读取地址栏里面的相关信息
reload属性:刷新页面,设置参数为true,从缓存中刷新
2.history:操作历史记录
history.back():历史记录后退一步
history.forword():历史记录前进一步
DOM对象
Document Object Model的首字母缩写,即文档对象模型,用来描述一个层次化的节点树,允许开发人员获取,添加,移除和修改页面的某一部分元素
常用事件类型-表单方面:onblur 在对象失去输入焦点时触发(光标不再文本框内),onfoces 当对象获得焦点时触发等等
动态网页技术概述
Java servlet
在web服务器端加载并运行的Java应用程序具体运行在Servlet引擎管理的JVM上,Servlet是开发服务端应用程序的一个很好选择,Servlet与JSP结合使用,能提供更强大的服务器端功能
JSP简介:JSP与PHP,ASP,ASP.NET等语言类似,运行在服务端的语言
原理:
JSP全称Java Server Pages,是一种动态网页开发技术,它使用JSP标签在HTML网页中插入Java代码,标签通常以<%开头 以%>结束。
JSP通过网页表单获取用户输入数据,访问数据库及其它数据源,然后动态的创建网页
JSP有多种功能,比如访问数据库,记录用户选择信息,访问JavaBeans组件等,还可以在不同的网页中传递控制信息和共享信息
ASP.NET技术是Microsoft Web开发史上一个重要里程碑
使用ASP.NET开发Web应用程序并维持其运行,比其他开发语言更简单,与Java,PHP和Perl等高级技术相比,ASP.NET具有方便性,灵活性,生产效率高,安全性高及面向对象等优点,是目前主流的网络编程技术之一
ASP.NET是Microsoft.NET的一部分,是Action Server Page(ASP)的另一个版本,它提供了一个统一的Web开发模型,其中包括开发人员生成企业级Web应用程序所需的各种服务,它的语法在很大程度上与ASP兼容,同时还提供一种新的编程模型和结构,可生成伸缩性和稳定性更好的应用程序,并提供更好的安全保护,它的文件的扩展名是.ASPX,JSP文件的扩展名就是.Jsp,如果是ASP文件的扩展名就是.ASP
PHP即“超文本预处理器”,是一种通用的脚本语言,PHP是在服务器端执行的脚本语言,与C语言类似,是常用的网站编程语言,PHP独特的语法混合了C,java,perl以及PHP自创的语法,利于学习,使用广泛,主要用于Web开发领域。
PHP,Apache和MySQL的组合以及成为Web服务器的标配,PHP可以做很多事,是服务端的脚本语言,需要安装PHP应用程序去解释执行,简单来说PHP是web服务器(iis,apache)功能扩展,这种结构更加适合网站原理,PHP需要和web服务器,数据库一块才能发挥作用
AJAX基本概念和原理
AJAX即“Asynchronous Javascript And XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术,通过在后端与服务器进行少量数据交换,AJAX可以使用网页实现异步(局部)更新
可以把一部分以前由服务器负担的工作转移到客户端,利用客户端的闲置的资源进行处理,减轻服务器和宽带的负担,节约空间和成本
Ajax的工作原理相当于在用户和服务器之间加了一个中间层(AJAX引擎),使用户操作和服务器响应异步化,并不是所有的用户请求都提交给服务器,像是一些数据验证和数据处理等都交给Ajax引擎自己来做,只有确认需要从服务器读取新数据时再由Ajax引擎代为向服务器提交请求
Ajax其核心有JavaScript,XMLHTTPRequest,DOM对象组成,通过XmlHttpRequest对象来向服务器发异步请求,从服务器获得数据,然后用JavaScript来操作DOM而更新页面,这其中最关键的一步是从服务器获得请求消息