- 准备写总结的前十分钟,在昏暗的灯光下,疯狂的戳着F6键,咦,我的键盘怎么不亮了,按到手抽筋,果断关机,在开机,感叹:果然啊,老师说的没错,关机能解决百分之九十九的问题,剩下的问题就是你该换电脑了!
一、浏览器和Web服务器之间交互的桥梁——HTTP协议
- HTTP协议(超文本传输协议)是浏览器和服务器之间的应用层通信协议,它基于TCP/IP;
- 在HTTP协议下的客户端/服务端模式的信息交换过程:
(1)建立连接:通过申请套接字(Socket)实现
(2)发送请求信息:客户端发送请求消息到服务端的停留端口上
(3)发送响应信息:服务器处理完请求之后,向客户机发送响应消息
(4)关闭连接:客户端和服务端都可以通过关闭套接字去结束TCP/IP对话
二、HTTP协议状态码
- 说到这里,前几天有个同学去面试被问到的一个知识点:请说一下常见的HTTP协议状态码的含义?
这里稍微总结一下:
1**:请求收到,继续处理
2**:操作成功收到,分析、接受
3**:完成请求客户需进一步细化请求
4**:客户错误
5**:服务器错误
常见的有200:表示交易成功;404:一般为路径错误;500:服务器发生内部错误,我理解为代码内部错误
三、Web服务器和Web浏览器
-
常见的Web浏览器有:IE浏览器;火狐浏览器;谷歌浏览器
-
常见的Web服务器有:Tomcat(轻量级);JBoss(重量级);Apache服务器(处理静态页面的效率很高)
四、Web应用程序的发展过程
(1)传统的Web服务器模式开发:仅提供有限的HTML静态页面
存在缺点:
不能提供及时信息,页面上提供的都是静态不变的信息
当需要添加新的信息时,必须重新编写HTML文件
由于HTML是静态的,所以不能满足用户的各种需求
(2)CGI的(Common Gateway Interface,公共网关接口)出现:能够提供动态页面的生成
存在缺点:
需要为每一个请求启动一个操作CGI程序的系统进程,如果请求非常频繁,这将会带来很大的开销
需要为每个请求加载和运行一个CGI程序,这也会带来很大开销,
需要重复编写处理网络协议的代码及进行编码,这些工作非常耗时
(3)Java Servlet的出现(改进的CGI):具有很好的移植性
相比于CGI,他的优点表现为:
只需要启动一个操作系统进程以及加载一个JVM,大大降低了系统的开销
Servlet能够直接与Web服务器进行交互,,而普通的CGI程序不能,
Servlet还能再各个程序共享数据,使得数据库连接池之类的功能很容易实现
缺陷:Servlet生成网页的方法是在Java类中嵌入html代码和表达式,当我们要对html做一个小小的改动时,都需修改和编译Servlet源文件,然后重新进行部署,使得修改代码十分的麻烦
(4)JSP(Java Servr Pages):Servlet的模板,是一种实现普通静态HTML和动态HTML混合编码的技术。
五、JSP的基本原理
Web容器处理JSP文件请求需要经过三个阶段
(1)翻译阶段:编写好的JSP文件会被Web容器中的JSP引擎转换为java源代码(Servlet引擎)
(2)编译阶段:java源代码被编译成可执行的字节码文件
(3)请求阶段:容器接受了客户端的请求以后,执行字节码文件,处理完请求之后,在将生成的页面反馈给客户端进行显示。