Http协议--响应信息

目录
    1、HTTP概述
    2、安装HttpWatch
    3、响应协议的格式
    4、响应信息如下
    5、常见响应码
    6、响应码304详解 (===涉及缓存,理解===)
    7、HTML中指定响应头
==========================================================================
HTTP协议(重点)
    协议:协议的甲乙双方,就是客户端浏览器 和 服务器!理解成双方通信的格式!
    请求协议;
    响应协议;

1、HTTP概述
        HTTP (HyperText Transfer Protocol),即超文本传输协议。这个协议详细规定了浏览器和万维网服务器之间
    互相通信的规则。HTTP就是一个通信规则,通信规则规定了客户端发送给服务器的内容格式,也规定了服务器发送给
    客户端的内容格式。其实我们要学习的就是这个两个格式!
    客户端 发送给 服务器 的格式叫“请求协议”;
    服务器 发送给 客户端 的格式叫“响应协议”。

2、安装HttpWatch(如果用IE)
        HttpWatch是专门为IE浏览器提供的,用来查看HTTP请求和响应内容的工具。而FireFox上需要安装FireBug软件。
    如果你使用的是Chrome,那么就不用自行安装什么工具了,因为它自身就有查看请求和响应内容的功能!
    HttpWatch 和 FireBug这些工具对浏览器而言不是必须的,但对我们开发者是很有帮助的,通过查看HTTP请求响应
    内容,可以使我们更好的学习HTTP协议。

3、响应协议的格式
  响应就是服务器发送给客户端的数据!   服务器 ----> 客户端
    响应格式:
    ----------------------------------------------------------------------------------------------
    |   * 响应首行
    |   * 响应头
    |   * 空行
    |   * 响应体(或称之为响应正文)
    ----------------------------------------------------------------------------------------------

4、响应信息
    响应内容是由服务器发送给浏览器的内容,浏览器会根据响应内容来显示。

    --------------------- 响应信息如下 -------------------------------------------------------
    |    HTTP/1.1 200 OK             [响应首行]
    |    Server: Apache-Coyote/1.1
    |    Content-Type: text/html;charset=UTF-8
    |    Content-Length: 724
    |    Set-Cookie: JSESSIONID=C97E2B4C55553EAB46079A4F263435A4; Path=/hello
    |    Date: Wed, 25 Sep 2012 04:15:03 GMT
    |                                [描述:这是空行]
    |    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    |    <html>
    |    <head>
    |        <base href="http://localhost:8080/hello/">
    |
    |        <title>My JSP 'index.jsp' starting page</title>
    |        <meta http-equiv="pragma" content="no-cache">
    |        <meta http-equiv="cache-control" content="no-cache">
    |        <meta http-equiv="expires" content="0">
    |        <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    |        <meta http-equiv="description" content="This is my page">
    |    </head>
    |
    |    <body>
    |    <form action="" method="post">
    |        关键字:<input type="text" name="keyword"/>
    |        <input type="submit" value="提交"/>
    |    </form>
    |    </body>
    |    </html>                   [描述:响应体]
    --------------------- 响应信息结束 ------------------------------------------------------

    响应头信息解释:
        * HTTP/1.1 200 OK    --> 响应协议为HTTP1.1,状态码为200,表示请求成功,OK是对状态码的解释;
        * Server: Apache-Coyote/1.1    --> 服务器的版本信息;
        * Content-Type: text/html;charset=UTF-8 --> 响应正文的MIME类型,例如image/jpeg表示响应正文
                为jpg图片,本信息:text/html;charset=utf-8 表示响应正文为html,并且编码为utf-8编码。
                浏览器会通过这一信息来显示响应数据。
        * Content-Length: 724    --> 响应体为724字节;
        * Set-Cookie: JSESSIONID=C97E2B4C55553EAB46079A4F263435A4; Path=/hello
                --> 响应给客户端的Cookie;
        * Date: Wed, 25 Sep 2012 04:15:03 GMT  --> 响应的时间,这可能会有8小时的时区差;
    其他响应头:
      通知客户端浏览器不要缓存页面的响应头:(这三个放一起表示不缓存)
            * Expires:-1    (表示立即过期)
            * Cache-Control: no-cache   (不缓存)
            * Pragma: no-cache     (不缓存)
      自动刷新响应头,浏览器会在3秒钟后自动重定向到传智主页
            * Refresh: 3;url=http://www.itcast.cn

5、常见响应码
    响应头对浏览器来说很重要,它说明了响应的真正含义。
        * 200:请求成功,浏览器会把响应体内容(通常是html)显示在浏览器中;
        * 302:重定向,当响应码为302时,表示浏览器第一次请求服务器时,服务器发送给浏览器一个Location响应头,
                它指定了新请求的URL地址,这时浏览器重新再发一个新URL地址的请求,并得到响应。浏览器地址栏的
                路径会变为新的URL地址。
        * 304:表示访问的资源没有改变,浏览器可以使用本地缓存页面。
        * 404:请求的资源没有找到,说明客户端错误的请求了不存在的资源;
        * 500:请求资源找到了,但服务器内部出现了错误;



重定向


6、响应码304详解 (===涉及缓存,理解===)
    相关头信息
        * Last-Modified:响应头,表示当前资源的最后修改时间;
        * If-Modified-Since:请求头,表示缓存的资源最后修改时间;
    状态码304:表示访问的资源没有改变
        1、客户端首次访问服务器的静态资源index.html,服务器会把index.html响应给客户端,而且还会添加一个
            名为Last-Modified的响应头,它说明了当前index.html的最后修改时间。
        2、客户端收到响应后,会把index.html缓存在客户端上,而且还会把Last-Modified缓存起来。
        3、客户端第二次请求index.html时,会添加名为If-Modified-Since的请求头,它的值是上次服务器
            响应头Last-Modified,服务器获取到客户端保存的最后修改时间,以及当前资源的最后修改时间进行比较,
            如果相同,说明index.html没有改动过,那么服务器不会发送index.html,而是响应状态码304,即通知
            客户端资源没有改变,你可以使用自己的缓存。

7、HTML中指定响应头
        在HTMl页面中可以使用<meta http-equiv="" content="">来指定响应头,例如在index.html页面中给出
            <meta http-equiv="Refresh" content="3;url=http://www.itcast.cn">
        表示浏览器只会显示index.html页面3秒,然后自动跳转到http://www.itcast.cn

转载于:https://my.oschina.net/oszzq/blog/3019142

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值