Web包含客户端和服务器

IOS七层模型:物理层---数据链路层---网络层---传输层---会话层---表示层---应用层

四层模型:网络接口层---网际层---传输层---应用层

HTTP协议(超文本传输协议)

概念:分布式、合作式、多媒体系统服务、面向应用层的协议,通用的、无状态的协议。

特点

1、遵循请求/响应模型。

2、无连接:每次连接只处理一个请求,请求响应后断开连接(TCP协议)。

3、无状态:事物处理没有记忆能力(上次请求和下次请求毫无关系,即使内容完全相同),优点:不需要以前的信息,响应快。缺点:需要前面信息时,需要重新传输,数据量增大。

4、简单快速。

5、灵活。

过程:连接--请求--响应--断开

HTTP请求:请求行(注意:响应行包含一个空行)+消息头(消息包头)+请求内容(正文)。

请求方法:get、post、head、put、delete、options、trace、connect

常用方法:get、post

get:向服务器检索信息,可以查询字符串的形式提供有限长度的数据,不能发送大量信息,只能用在一个Web应用程序中执行查询,不能用于执行更新。所以适合发送我们不介意再URL中可见的少量信息。(eg:浏览器地址栏输入URL,在当前网页上点击HTML连接等)

psot:向服务器发送数据,并要求指定的URL处理。post方法与get方法相似,也可以有查询字符串,但是post用完全不同的机制传递信息。post可以将无限制数量的数据作为HTTP请求的一部分,通过套接字连接发送。数据不会作为URL的一部分出现,并且只发送一次。所以post常用于发送敏感信息或者大量信息,或者上传文件。

get与post的选择:如果应用程序需要修改数据或者添加数据,并且通过HTTP发送请求,应该用post。

动态Web与静态Web的区别:最本质的区别是静态Web无法进行数据库操作,而动态Web可以进行数据库操作。动态web最大的特点是具有交互性,就是服务器端会自动根据用户请求响应不同的结果(也是最大的缺点)。

动态网页技术(时间先后顺序)

CGI(公共网管接口):最早出现的实现动态web的技术,跨语言(可以用任何语言实现),但是传统的CGI程序本身是采用多进程的机制处理,每当一个新用户连接到服务器上时,服务器就会为其分配一个进程,所以CGI的效率很低。缺陷:基于进程(一个请求一个进程),不支持高并发,资源耗尽。解决方案:一个进程多个线程。

PHP:超文本预处理(中小型开发),跨平台的服务器端,嵌入式脚本语言。大量借用c、java等语言的语法,并结合PHP自身的特点,使开发者能够迅速的写出动态页面,而且使用免费,用户可以在官方站点自由下载。缺点:需要在apache服务器下运行,只有在使用Mysql数据库性能才会更好,所以一般适合个人或者小型项目开发。

ASP(微软)动态服务页:动态web服务器的开发环境,利用它可以产生和运行动态的、交互的、高性能的web服务器程序。ASP采用脚本语言VBScript作为开发语言。由于ASP技术出现较早,所以一直到今天还在被继续使用。但是ASP技术本身有一个最大的问题就是平台的支持,ASP只能运行IIS服务器上,而且只能在SQLservler数据库上发挥最大的性能,但是这套开发技术相对使用java开发而言,性能很差,所以一般用于个人或者中小型项目开发。

ASP.NET(ASP技术的升级):微软继ASP之后退出的新一代动态网站开发技术,基于.NET架构平台,用户可以选择.NET框架(多语言)下自己喜欢的语言进行开发。ASP.NET技术是ASP技能的更新,也是微软目前主推的技术,但是由于微软的产生永远都会收到频台的限制,所以此技术往往用于中型项目的开发。

Servlet/JSP技术(基于JAVA):使用java完成的动态web开发,代码风格和ASP类似,都属于在HTML代码中嵌入java代码以实现功能,忧郁java语言的跨平台特征,所以JSP也不会受操作或开发平台的限制,而且有多种服务器可以支持。如Tomcat、Weblogic、JBoss。WebSphere等。所以经常在中大型项目开发中使用。