动态web访问
客户端通过浏览器发起http请求,服务器端接收请求通过web服务器插件判断该请求是静态还是动态的
- 如果是静态资源,则直接将请求转给web服务器,之后由web服务器从文件系统中取出内容,返回给客户端解析
- 如果是动态资源,则将请求先转给web容器,web容器连接数据库,从数据库中取出数据动态拼凑页面展示内容,然后交给服务器,之后通过web服务器将内容发送回客户端解析
HTTP
基本简介
超文本传输协议,是一个TCP/IP层的应用协议,版本有1.0和1.1
http1.0: 与服务器连接后,只能获取一个web资源;
http1.1: 与服务器连接后,能获取多个Web资源。
HTTP请求
一个请求行、若干消息头以及实体内容
请求方式
请求方式有get、post、head、put、options、delete、trace
GET请求和POST请求的区别
GET请求
- 请求参数会在浏览器的地址栏中显示,所以不安全;
- 请求参数长度限制长度在1KB之内;
- GET请求没有请求体,无法通过request.setCharacterEncoding()来设置参数的编码;
POST请求
- 请求参数不会显示浏览器的地址栏,相对安全;
- 请求参数长度没有限制;
浏览器地址栏直接输入:一定是GET请求;
超链接:一定是GET请求;
表单:可以是GET,也可以是POST,这取决与的method属性值
消息头
accept:浏览器通过这个头告诉服务器,它所支持的数据类型
Accept-Charset: 浏览器通过这个头告诉服务器,它支持哪种字符集
Accept-Encoding:浏览器通过这个头告诉服务器,支持的压缩格式
Host:浏览器通过这个头告诉服务器,想访问哪台主机
If-Modified-Since: 浏览器通过这个头告诉服务器,缓存数据的时间
Referer:浏览器通过这个头告诉服务器,客户机是哪个页面来的 防盗链
Connection:浏览器通过这个头告诉服务器,请求完后是断开链接还是何持链接
HTTP响应
代表服务器向客户端回送的数据,包括一个状态行、若干消息头以及实体内容
状态行:
100-199:表示成功接收请求,要求客户端继续提交下一次请求才能完成整个处理过程
200-299:表示成功接收请求并已完成,常用200
300-399:为完成请求,客户需进一步细化请求。例如,请求的资源已经移动一个新地址,常用302/307和304(重定向)
400-499:客户端的请求有错误,常用404资源不存在 ,403服务器拒绝客户端请求,通常由于权限导致
500-599:服务器端出现错误,常用500
响应头
Location: 服务器通过这个头,来告诉浏览器跳到哪里
Server:服务器通过这个头,告诉浏览器服务器的型号
Content-Encoding:服务器通过这个头,告诉浏览器,数据的压缩格式
Content-Type:服务器通过这个头,告诉浏览器回送数据的类型
Refresh:服务器通过这个头,告诉浏览器定时刷新
在服务器端设置响应头来控制客户端浏览器的行为
设置location响应头,实现请求重定向
设置Content-Encoding响应头,告诉浏览器数据的压缩格式
设置content-type响应头,指定回送数据类型
设置refresh响应头,让浏览器定时刷新
设置content-disposition响应头,让浏览器下载文件