HTTP超文本传输协议
HTTP是客户端浏览器和服务器间应用层通信协议,是基于TCP/IP之上的协议。保证了正确传输超文本文档,还确定哪一部分先显示(文本>图像)。
WWW中,TCP端口为80,一直监听等待连接的出现。
基于HTTP协议的客户/服务器模式的信息交换过程分为4个过程
1. 建立连接
2. 发送请求信息
3. 发送响应信息
4. 关闭连接
详细介绍:
套接字实际上就是插座,浏览器在客户端申请一个插座,连线到服务器那里去(正如前文所述,服务器也有一个插座,位于属于TCP的80号端口)。
发送请求消息,实际上就是向服务器请求内容,主要了解:请求头,请求行,正文(实体内容),方法,url等
服务器响应了客户端的请求,表达了诸如我收到你的消息、我需要向你问一些细节、你是错误的客户、我是错误的服务器等等(即所谓的状态码)。
WEB技术
* 传统web仅用HTML静态网页,内容是保持不变的,开发周期很长,更新慢
动态生成页面技术,利于维护,针对不同请求返回不同访问信息,满足服务多样性,新的内容可以通过后台管理页面发布和修改而无须更改整个程序
1. CGI程序
CGI(Common Gateway Interface, 公共网关接口),在服务器端运行,实现动态输出的一种程序。在服务器端执行,并可以和web服务器在同一个主机上,操作流程如图。
但同时也有很多不足:
2. Servlet
虽然CGI也能够用java写,但是每一次进程都需要加载一次JVM,效率更低。而servlet的出现只需要加载一次JVM,之后这个JVM再加载其他的类。
Servlet的优点:
不足:
简而言之,就是每次都要print输出html代码不方便书写,并且不满足开放-封闭低耦合的设计原则。
3. JSP,servlet的模板
是一种实现静态HTML和动态HTML混合编码的技术,JSP文件能够被翻译(编译)成servlet文件。所有它具有所有servlet的优点,可以把它看作是一种“彻底”的servlet。
JSP页面的访问和最初的CGI实际上也是差不多的,但是在效率和简易上做出了改良。
JSP原理
JSP最大的特点就是能够把程序和页面的创建分开来。
WEB容器处理JSP文件的请求需要经过三个阶段:
.jsp -> .java
.java -> .class
.class -- waiting to be sent back --> client interface
搭建环境
这里不提详细的步骤,只给出一些要点:
JRE和JDK的关系
HTTP端口为80,但开发模式下通常用8080
Tomcat的方式:http://localhost:8080、http://127.0.0.1:8080等等