Web应用
采用B/S架构,浏览器跟服务器进行数据交互的方式,数据传输的方式,采用的是HTTP协议,Web应用就是用浏览器进行访问的应用程序,无需安装客户端。
JavaWeb
通过Java语言对网页进行动态编写,web间的通信机制,是使用HTTP协议对后端服务器进行请求,服务器收到请求,获取请求信息与数据,进行逻辑处理然后在对请求进行响应。
常见的web服务器:
weblogi 大型的收费支持javaee所有规范的服务器
tomcat 中小型的免费支持servlet和jsp规范的服务器
tomcat的厂商是apache组织,一个开源非盈利性的项目发布组织
IDEA与tomcat整合
HTTP协议
超文本传输协议,规定了浏览器和服务器之间的通信原则,通过网络传输HTML文档数据的协议
HTTP可以传输任意数据类型,文本,图片,视频等
现版本使用的是HTTP1.1,采用长连接的方式,当一个网页打开完成后,客户端和服务端之间传输数据时,连接不会关闭,如果客户端再次访问这个服务器的网页,会继续使用这一条已经建立好的连接。
HTTP协议是一种无状态协议,协议的状态指的是下次传输可以记住本次传输数据的能力,而HTTP不会为了下次的连接而维护本次连接传输的数据。例如浏览器打开一个网页,关闭浏览器,然后再打开浏览器,服务器并不会知道浏览器的关闭,所以HTTP是无状态协议。我们在一个网站的多个页面间需要共享同个数据,可以通过cookie与session实现
HTTP Request请求
请求就是浏览器给后端服务器去发送数据
请求:
- 请求行:请求信息的第一行
- 请求头:请求信息第二行至请求空行
- 请求体:请求空行下
请求行:GET /HTTPTest/login?username=zhangsan&password=123456 HTTP/1.1
格式: 请求方式 /请求的资源?请求参数 协议/版本
请求方式常见的 get post
get:会把请求参数拼接在URL后面,数据大小有限制,get请求没有请求体
post:请求会将请求参数放到请求体里面,数据大小无限制
常见的请求头:
Accept: text/html,image/* --告诉服务器当前客户端可以接收的文档的类型。其实这里包含了*/*,就表示什么都可以接收; 大类型/小类型 比如 text/css text/javascript
Accept-Charset: ISO-8859-1 --告诉服务器,客户端提交的表单可能使用的编码类型
Accept-Encoding: gzip --浏览器发给服务器,声明浏览器支持的编码类型
Accept-Language:zh-cn --语言环境
Host: localhost:8080 --访问主机
If-Modified-Since: Tue, 11 Jul 2000 18:23:51 GMT 客户端第二次请求此URL时,根据 HTTP 协议的规定,浏览器会向服务器传送 If-Modified-Since 报头,询问该时间之后文件是否有被修改过:后面跟的时间是本地浏览器存储的文件修改时间
Referer: http://www.baidu.com/index.jsp --来自哪个页面、防盗链
User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0)
Cookie
Connection:Keep-Alive --链接状态 长链接
Date: Tue, 11 Jul 2000 18:23:51 GMT --时间
HTTP Response响应
响应就是服务器向浏览器回写数据
响应:
-
响应行:响应信息第一行(格式: 协议/版本 响应状态码 响应的描述)
-
响应头:响应信息第二行到响应空行
-
响应体:响应空行下
常见的响应头 Location: http://www.baidu.org/index.jsp --跳转方向 302重定向 Server:apache tomcat --服务器型号 Content-Encoding: gzip --数据压缩 Content-Length: 80 --数据长度 Content-Language: zh-cn --语言环境 Content-Type: text/html; charset=GB2312 --告诉浏览器,服务器返回的文本采用什么编码 Last-Modified: Tue, 11 Jul 2000 18:23:51 GMT 在浏览器第一次请求某一个URL时,服务器端的返回状态会是200,内容是你请求的资源,同时有一个LastModified的属性标记此文件在服务期端最后被修改的时间 Refresh: 1;url=http://www.hehe.org --定时刷新 Content-Disposition: attachment; filename=aaa.zip --下载 Set-Cookie:SS=Q0=5Lb_nQ; path=/search 让浏览器将数据保存到本地 Expires: -1 --缓存 -1 就是让页面立即过期 Cache-Control: no-cache --浏览器和缓存服务器都不应该缓存页面信息强制每次请求直接发送给源服务器,而不经过本地缓存版本的校验 Connection: Keep-Alive --保持连接 长链接 Date: Tue, 11 Jul 2000 18:23:51 GMT