• HTTP协议2


    一.响应协议

    格式:

    (1)响应首行:HTTP协议版本,不可默认

    (2)响应头信息:可以默认

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

    (3)空行:

    (4)响应体:

      响应内容是由服务器发送给浏览器的你内容,浏览器会根据相应内容来显示。遇到<img src=”>会开一个新的线程加载,所以有时图片多的话,内容会先显示,然后图片才会一张张加载出来。

     状态码:

       (1)200:请求成功,浏览器会把响应体内容(通常是HTML)显示在浏览器中;

       (2)404:请求的资源没有找到,说明客户端错误的请求了不存在的资源呢;

       (3)500:请求资源找到了,但是服务器内部出现了错误;

       (4)305:重定向:当响应码为302时,表示服务器要求浏览器重新发一个请求

                 服务器会发送个响应头Location,它指定了新请求的URL地址。

       (5)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。

    自动刷新响应头:浏览器会在3秒之后请求http://www.baidu.com

    例如:Refresh: 3;url=http://www.baidu.com
    

      

    练习:

    在浏览器中打开本地文件,远程连接

    import socket
    sock=socket.socket()
    sock.bind(("127.0.0.1",8080))
    sock.listen(5)
    while 1:
        conn,addr=sock.accept()
        conn.recv(1024)
        conn.send(b"HTTP/1.1 200 ok
    
      <h1>hello yuan</h1> <img src='https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1494842164403&di=e7fd7f308255c82df8bf58dca55d63e8&imgtype=0&src=http%3A%2F%2Fimg4.duitang.com%2Fuploads%2Fitem%2F201511%2F14%2F20151114033959_3drwk.jpeg'>")
    conn.close()
    >>
    
    

      

  • 相关阅读:
    Android SDK、NDK、JNI的简单介绍
    深入理解计算机系统—异常
    Jmeter3.1 使用及新增报告功能
    jmeter3.1连接数据库报错,ORA00923: 未找到要求的 FROM 关键字
    Jenkins插件、war下载地址
    jenkins自动打tag
    jenkins参数化构建过程
    Jmeter接口测试自动化(jmeter+ant+jenkins持续集成)
    既然选择开始就不会停下
    知识提升整体
  • 原文地址:https://www.cnblogs.com/asaka/p/6864047.html
Copyright © 2020-2023  润新知