Web应用开发是目前软件开发中最重要的部分。Web开发也经历几个阶段:
- 静态Web页面:用文本编辑器编辑并生成静态的HTML页面,如果要修改Web页面的内容,就需要再次编辑HTML源文件。静态Web页面无法与用户交互。
- CGI:要处理用户发送的动态数据,出现了Common Gateway Interface,简称CGI,用C/C++编写。
- ASP/JSP/PHP:Web应用特点是修改频繁,脚本语言由于开发效率高,与HTML结合紧密,因此,迅速取代了CGI模式。
- MVC:为了解决直接用脚本语言嵌入HTML导致的可维护性差的问题,Web应用也引入了Model-View-Controller的模式,来简化Web开发。ASP发展为ASP.Net,JSP和PHP也有一大堆MVC框架。
HTTP协议简介
浏览器和服务器之间的传输协议是HTTP(在网络上传输HTML的协议,用于浏览器和服务器的通信)。服务器把网页传给浏览器,实际上就是把网页的HTML(一种用来定义网页的文本)代码发送给浏览器,让浏览器显示出来。
HTTP请求
- 浏览器首先向服务器发送HTTP请求,请求包括:
方法:GET还是POST,GET仅请求资源,POST会附带用户数据;
路径:/full/url/path;
域名:由Host头指定:Host: www.xxxx.com
以及其他相关的Header;
如果是POST,那么请求还包括一个Body,包含用户数据。 - 服务器向浏览器返回HTTP响应,响应包括:
响应代码:200表示成功,3xx表示重定向,4xx表示客户端发送的请求有错误,5xx表示服务器端处理时发生了错误;
响应类型:由Content-Type指定,例如:Content-Type: text/html;charset=utf-8表示响应类型是HTML文本,并且编码是UTF-8,Content-Type: image/jpeg表示响应类型是JPEG格式的图片;
以及其他相关的Header;
通常服务器的HTTP响应会携带内容,也就是有一个Body,包含响应的内容,其中包含了HTML源码。 - 如果浏览器还需要继续向服务器请求其他资源,比如图片,就再次发出HTTP请求,重复步骤1、2。