/*
*tomcat配置外部应用
*conf/server.xml 打开server.xml文件 找到<Host>元素 在其中添加<Context>元素
*server.xml
*<Host name = "localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">
*<Context path = "my_hello" docBase="F:/hello"/>
*</Host>
*path 指定当前应用的名称
*docBase 指定应用的物理位置
*浏览器访问路径 http://localhost:8080/my_hello/index.html
*
*conf/catalana/localhost 该目录下创建 my_hello.xml文件 在该文件中编写<Context>元素
* 文件名 指定当前应用的名称
* docBase 指定应用的物理位置
* 浏览器访问路径 http://localhost:8080/my_hello/index.html
*
*映射虚拟主机
* 在浏览器中输入http://www.myitem.com 就可以访问项目
* 1、修改端口号为80
* <Connector port= "80" protocol="HTPP/1.1" connectionTimeout="20000" redirectPort="8443"/>
* 2、在本机上可以解析域名为127.0.0.1 这需要修改c:\windows\system32\drivers\etc\hosts文件 添加对http://www.myitem.com 和127.0.0.1的绑定关系
* 127.0.0.1 www.myitem.com
* 3、在server.xml文件中添加一个<Host>
* <Host name="www.myitem.com" appBase="D:/myitems" unpackWARs="true" autoDeploy="true"></Host>
* name = "www.myitem.com" 指定虚拟机名为www.myitem.com
* appBase="d:/myitems" 指定当前虚拟主机的应用程序存放目录为d:/myitems
* 在myitems 目录下创建名为ROOT 的应用 因为一个主机只可以有一个名为ROOT的应用 名为ROOT的应用在浏览器访问是可以不给出应用名称
*
*协议 协议的甲乙双方 就是客户端(浏览器) 和服务器
* 双方通信的格式
* 请求协议
* 响应协议
*安装HttpWatch
* HttpWatch 是专门为IE浏览器提供的 用来查看HTTP请求和响应内容的工具Firefox 需要安装FireBug软件 如果用chrome 就不用安装 自带查看请求和响应内容的功能
*HTTP概述
* HTTP(Hypertext transport protocol) 即超文本传输协议 这个协议详细规定了浏览器和万维网服务器之间通信的规则 HTTP就是一个通信规则 通信规则规定了客户端发送给服务器的内容格式
*也规定了服务器
*get请求 (有空行没请求体)
* 请求行
* 多个请求头信息 头名称:头值
* 空行
* 请求体
*正文(体) 表单是一大堆内容 而发送给服务器的只有一行字符串
*Content-Type application/x-www-form-urlencoded 表单的数据自动用url来编码
*中文 字节+128 转换成16进制 添加%这个前缀
*Referer(从来源统计访问链 防盗链) http://localhost:8080/hello/index.jsp 青睐来自哪个页面 如果是从百度来到的 那么Refere:http://www.baidu.com 如果是在浏览器的地址栏中直接输入地址 就没有Referer这个请求头了
*
*Content-Type application/x-www-form-urlencoded 表单的数据类型 说明会使用url格式编码数据 url编码的数据都是以"%"为前缀 后面跟随两位的16进制
*Content-Length:13 请求体的长度 这里表示13个字节
*keyword=11 请求体内容11是在表单中输入的数据 keyword 是表单字段的名字
*统计工作 比如在百度上做了广告 可以对每个请求中的Referer进行分析 如果Referer为百度的很多 那么说明用户是通过百度找到的
*防盗链 比如一个下载链接 而其他人盗用了 没有看我们的广告直接进入下载 可以通过Referer分析 如果请求来自本网站那么允许下载如果不是 跳转到广告 然后再下载
*HTTP/1.1 200 OK 响应协议为HTTP1.1状态码为200 表示请求成功 OK是对状态码的解释
*Server Apache-Coyot/1.1 服务器的版本信息
*Content-Type text/html;charset=UTF-8 响应体使用的编码为UTF-8
*Content-Length 724 响应体为724字节
*Set-Cookie JSESSIONID=xxxxx path=/hello 响应给客户端的Cookie
*Date Wed 25 Sep 2017 04:13:05 响应的时间 可能有8小时的时区差
*
*响应码
* 响应头对浏览器来说很重要 说明了响应的真正含义 例如 200表示响应成功了 302表示重定向 这说明浏览器需要再发一个新的请求
* 200 请求成功 浏览器会把响应体内容(通常是html)显示在浏览器中
* 404 请求的资源没有找到 说明客户端错误的请求了不存在的资源
* 500 请求资源找到了 但服务器内出现了错误
* 302 重定向 表示服务器要求浏览器重新再发一个请求 服务器会发送一个响应头Location 它指定了新请求的URL地址 进入一个地址后跳转到另外一个
* 304 当用户第一次请求index.html 时 服务器会添加一个名为Last-Modified 响应头 这个头说明了index.html 的最后修改时间 浏览器会把index.html内容 以及最后响应时间缓存下来
* 当用户第二次请求index.html时 在请求中包含一个名为if-Modified-Since 请求头 它的值就是第一次请求时服务器通过Last-Modified 响应头发送给浏览器的值 即index.html
* 最后的修改时间 If-Modified-Since 请求头就是在告诉服务器 浏览器缓存的index.html 最后的修改时间是这个 如果index.html 最后的时间仍是这个就不用再响应这个index.html内容
* 会把缓存的内容直接显示 服务器端会获取If-Modified-Since值 与index.html的当前最后修改时间对比 如果相同 服务器会发响应码304 表示index.html与浏览器上次缓存的相同
* 无需再次发送 浏览器可以显示自己的缓存页面 如果比对不同 那么说明index.html已经做了修改 服务器会响应200
*响应头
* Last-Modified 最后修改时间
*请求头
* If-Modified-Since 把上次请求的index.html 的最后修改时间还给服务器
*状态码 304 比较If-Modified-Since 的时间和文件真实的时间一样时 服务器会响应304 而且不会影响正文 表示 浏览器缓存的就是最新版本
* 动态页面没有缓存 因为变量时刻在动 缓存没意义
*其他响应头
* 告诉浏览器不要缓存的响应头
* Expires:-1
* Cache-Control:no-cache
* Pragma:no-cache
*自动刷新响应头 浏览器会在3秒后请求百度
* Refresh:3;url=http://www.baidu.com
*
*HTML中指定响应头
* 在html页面中可以使用<meta http-equiv="" content=""> 来指定响应头 例如在index.html页面中给出<meta http-equiv="Refresh" content="5;url=http://www.baidu.com">
*表示只显示当前页面5秒然后自动跳转到http://www.baidu.com
*/
javawebday16(响应头 )
最新推荐文章于 2022-11-04 11:30:21 发布