javawebday16(响应头 )

来源:互联网 发布:ncut算法代码 编辑:程序博客网 时间:2024/05/16 09:16
/* *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 */
原创粉丝点击