javawebday16(响应头 )

/*
 *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
 */
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值