zoukankan      html  css  js  c++  java
  • http协议

    http请求协议

    请求首行;  // 请求方式 请求路径 协议和版本,例如:GET /index.html HTTP/1.1
    请求头信息;// 请求头名称:请求头内容,即为key:value格式,例如:Host:localhost
    空行;     // 用来与请求体分隔开
    请求体。   // GET没有请求体,只有POST有请求体。

    Get请求:

    1. HTTP默认的请求方法就是GET * 没有请求体 * 数据必须在1K之内! * GET请求数据会暴露在浏览器的地址栏中 地址栏中直接输入url 点击页面上的超链接 form表单默认使get请求

      

    Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
    Accept-Encoding:gzip, deflate, sdch    # 压缩格式
    Accept-Language:zh-CN,zh;q=0.8  # 语言
    Cache-Control:no-cache  # 缓存
    Connection:keep-alive
    Cookie:csrftoken=z5H43ZwARx7AIJ82OEizBOWbsAQA2LPk
    Host:127.0.0.1:8090
    Pragma:no-cache
    Upgrade-Insecure-Requests:1
    User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.89 Safari/537.36  # 操作系统版本、浏览器内容
    Name
    login/
    requests ❘ 737 B transferred ❘ Finish: 5 ms ❘ DOMContentLoaded: 14 ms ❘ Load: 14 ms
    • GET 127.0.0.1:8090/login  HTTP/1.1GET请求,请求服务器路径为  127.0.0.1:8090/login ,协议为1.1
    • Host:localhost请求的主机名为localhost
    • *User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:5.0) Gecko/20100101 Firefox/5.0与浏览器和OS相关的信息。有些网站会显示用户的系统版本和浏览器版本信息,这都是通过获取User-Agent头信息而来的;
    •  Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8告诉服务器,当前客户端可以接收的文档类型,其实这里包含了*/*,就表示什么都可以接收;
    • Accept-Language: zh-cn,zh;q=0.5当前客户端支持的语言,可以在浏览器的工具选项中找到语言相关信息;
    • Accept-Encoding: gzip, deflate支持的压缩格式。数据在网络上传递时,可能服务器会把数据压缩后再发送;
    • Accept-Charset: GB2312,utf-8;q=0.7,*;q=0.7客户端支持的编码;
    • Connection: keep-alive客户端支持的链接方式,保持一段时间链接,默认为3000ms
    • Cookie: JSESSIONID=369766FDF6220F7803433C0B2DE36D98因为不是第一次访问这个地址,所以会在请求中把上一次服务器响应中发送过来的Cookie在请求中一并发送去过;这个Cookie的名字为JSESSIONID。

    POST

    (1). 数据不会出现在地址栏中
    (2). 数据的大小没有上限
    (3). 有请求体
    (4). 请求体中如果存在中文,会使用URL编码!
        username=%E5%BC%A0%E4%B8%89&password=123
    • Referer: http://localhost:8080/hello/index.jsp请求来自哪个页面,例如你在百度上点击链接到了这里,那么Referer:http://www.baidu.com;如果你是在浏览器的地址栏中直接输入的地址,那么就没有Referer这个请求头了;
    • 作用:1.统计从哪个网站跳转 2.防止盗链接
    • Referer作用
      • Content-Type: application/x-www-form-urlencoded表单的数据类型,说明会使用url格式编码数据;url编码的数据都是以“%”为前缀,后面跟随两位的16进制。
      • Content-Length:13请求体的长度,这里表示13个字节。
      • keyword=hello请求体内容!hello是在表单中输入的数据,keyword是表单字段的名字。

     响应协议:

    响应协议的格式如下:
        响应首行;
        响应头信息;
            空行;
        响应体。

    • HTTP/1.1 200 OK响应协议为HTTP1.1,状态码为200,表示请求成功,OK是对状态码的解释;
    • Server:WSGIServer/0.2 CPython/3.5.2:服务器的版本信息;
    • Content-Type: text/html;charset=UTF-8响应体使用的编码为UTF-8
    • Content-Length: 724响应体为724字节;
    • Set-Cookie: JSESSIONID=C97E2B4C55553EAB46079A4F263435A4; Path=/hello响应给客户端的Cookie
    • Date: Wed, 25 Sep 2012 04:15:03 GMT响应的时间,这可能会有8小时的时区差;

    状态

    响应头对浏览器来说很重要,它说明了响应的真正含义。例如200表示响应成功了,302表示重定向,这说明浏览器需要再发一个新的请求。

    • 200:请求成功,浏览器会把响应体内容(通常是html)显示在浏览器中;
    • 404:请求的资源没有找到,说明客户端错误的请求了不存在的资源;
    • 500:请求资源找到了,但服务器内部出现了错误;
    • 302:重定向,当响应码为302时,表示服务器要求浏览器重新再发一个请求,服务器会发送一个响应头Location,它指定了新请求的URL地址;
    • 304:如下
    • 其他响应头

      告诉浏览器不要缓存的响应头:

      • Expires: -1
      • Cache-Control: no-cache
      • Pragma: no-cache

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

      • Refresh: 3;url=http://www.baidu.com 
    • HTML中指定响应头

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

      

  • 相关阅读:
    拨号进入防盗界面
    手机开机或启动广播接收者
    time、datetime
    py 包和模块,软件开发目录规范
    递归函数
    匿名函数,内置函数
    三元表达式,列表生成式,生成器生成式
    迭代器,生成器
    XPath
    闭包,装饰器
  • 原文地址:https://www.cnblogs.com/hoganhome/p/11674892.html
Copyright © 2011-2022 走看看