什么是WEB
web(World Wide Web)即全球广域网,也称为万维网,它是一种基于超文本和HTTP的、全球性的、动态交互的、跨平台的分布式图形信息系统。是建立在Internet上的一种网络服务,为浏览者在Internet上查找和浏览信息提供了图形化的、易于访问的直观界面,其中的文档及超级链接将Internet上的信息节点组织成一个互为关联的网状结构。
软件架构
- CS结构的软件
- CS:Client/Server 客户端和服务器,这种软件往往需要安装。比如QQ、迅雷、播放器。
- 优缺点:
- 优点:
- 可以减轻服务器端压力,将部分代码写到客户端。
- 界面很美观。
- 缺点:
- 一旦服务器更新了,客户端也需要更新。
- 分布式开发比较弱。
- 优点:
- BS结构的软件
- BS:Browser/Server 浏览器和服务器,这种软件不需要安装,只需要通过浏览器就可以访问。
- 优缺点:
- 优点:
- 服务器一旦更新,不需要更新客户端,因为客户端就是浏览器
- 比较强的分布式能力
- 缺点:
- 服务器端压力会比较大。
- 界面效果不如CS结构软件。
- 优点:
常见web服务器
- Tomcat :Apache组织提供的一个开源的免费的web服务器。满足EE的Serlet和JSP的规范。
- WebSphere :IBM公司开发的一个收费的大型web服务器。满足了EE开发的所有规范。
- WebLogic :BEA公司开发的一个收费的大型web服务器。满足了EE开发的所有规范。
- IIS :应用在.NET平台上。
- Apache :应用在PHP平台上。
WEB开发中的资源
- 静态web资源
- HTML
- CSS
- JS
- 动态web资源
- Servlet、JSP
- PHP
- ASP
HTTP协议的概述
什么是HTTP协议
超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。1960年美国人Ted Nelson构思了一种通过计算机处理文本信息的方法,并称之为超文本(hypertext),这成为了HTTP超文本传输协议标准架构的发展根基。Ted Nelson组织协调万维网协会(World Wide Web Consortium)和互联网工程工作小组(Internet Engineering Task Force )共同合作研究,最终发布了一系列的RFC,其中著名的RFC 2616定义了HTTP 1.1。
HTTP的特性
- 基于请求和响应模型
- 必须要先有请求,后有响应。
- 请求和响应必须成对出现。
- 简单快捷
- 因为发送请求的时候只需要发送请求方式和请求路径即可
HTTP协议之请求部分
- 请求行
- 请求方式
- 请求方式有很多种,常用就两种GET和POST。
- GET和POST的区别?
- GET:请求的参数会显示到地址栏。通常是有大小的限制。没有请求体
- POST:请求的参数不会显示到地址栏(在请求体中)。POST没有大小的限制。有请求体(请求参数)。只有表单设置method=”post”才是post请求。
- 请求路径
- 协议版本
- 请求方式
- 请求头
- 请求头的格式一般都是一个key对应一个value的,也有一个key对应多个value的情况。
- 记住一些请求头:
- Referer :代表网页的来源。(防盗链)。
- User-Agent :获得客户端浏览器类型。
- 请求体
- 只有POST请求方式才有请求体,而且请求体是POST方式请求参数。
HTTP协议之响应部分
- 响应行
- 协议版本
- 状态码
- 200 :代表响应成功
- 302 :需要进行重定向操作
- 304 :需要查找本地缓存
- 404 :请求资源不存在
- 500 :服务器内部错误
- 状态码描述
- 响应头
- 通常一个key对应一个value,也有一个key对应多个value。
- 记住响应头:
- Location :重定向的路径。
- Refresh :定时刷新。
- Content-Disposition:文件下载的时候使用。
- 响应体
- 就是显示到浏览器上页面的代码。
Servlet的入门
Servlet(Server Applet)是Java Servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,主要功能在于交互式地浏览和修改数据,生成动态Web内容。
实现Servlet的接口
在web.xml中配置这个类
Servlet的实现关系
Servlet接口
|
|
GenericServlet类 通用的Servlet,是一个与协议无关的Servlet
|
|
HttpServlet类 Http专用的Servlet
关系实现的概述
SUN设计之初,是有野心,以后的互联网不仅仅只使用http协议,可以通过GenericServlet实现。HttpServlet是一个与协议相关的Servlet是专门用来处理HTTP协议的请求。通常编写一个Servlet一般都会让这个Servlet继承HttpServlet重写service方法。
在service方法内部根据请求方式不同执行不同的doXXX的方法(get请求执行doGet方法,如果是post请求就会执行doPost方法)。
所以往往继承了HttpServlet之后不需要重写service方法,只需要重写doGet和doPost方法即可。往往请求要处理的内容的代码都是一致的,所以需要让doGet和doPost相互调用可以简化编程。