zoukankan      html  css  js  c++  java
  • HTTP 协议介绍

    • HTTP 协议规定了浏览器和服务器之间互相通信的规则.
      • 请求协议: 规定了客户端发送给服务器的内容格式
      • 响应协议: 服务器发送给客户端的内容格式

    请求协议

    • 请求协议格式:
      • 请求行
      • 多个请求头信息(属性名:属性值)
      • 空行
      • 请求体
    // 请求行: 请求方式  请求的资源路径  http 协议版本
    GET https//www.baidu.com HTTP/1.1
    
    // 浏览器支持的 MIME 类型
    Accept:text/html,application/xhtml+xml,application/xml;image/webp,image/apng,*/*;
    
    // 浏览器支持的压缩格式
    Accept-Encoding:gzip, deflate
    
    // 浏览器支持的语言
    Accept-Language:en-US,en;q=0.8,zh-CN;q=0.6,zh;q=0.4
    
    // 主机
    Host:www.baidu.com
    
    // 浏览器型号和操作系统型号
    User-Agent:
    
    Connection:keep-alive
    

    响应协议

    • 响应协议格式:
      • 响应行
      • 响应头(属性名:属性值)
      • 空行
      • 响应体
    // 响应行: http 协议版本  响应状态码  响应状态码的解释
    HTTP/1.1 200 OK
    
    // 缓存处理
    Cache-Control:no-cache
    
    Connection:Keep-Alive
    
    // 响应内容压缩格式
    Content-Encoding:gzip
    
    // 响应内容的 MIME 类型, 文本类型的内容需要指定编码
    Content-Type:text/html;charset=utf-8
    
    // 响应时间
    Date:Fri, 22 Sep 2017 03:12:21 GMT
    
    // 服务器的版本信息
    Server:apache
    
    // 服务器响应给客户端的 Cookie
    Set-Cookie:BDSVRTM=453; path=/
    
    // 响应的文件大小
    Content-Length: 646
    

    响应状态码

    • 200 : 请求成功
    • 以"3"开头,全要转接
      • 302 : 重定向, 表示服务器要求浏览器重新发送一个请求,
        服务器会在响应信息中加入一个 Location, 它指定了浏览器需要重新请求的 URL 地址
      • 304 : 与缓存相关, 只对静态类型( 如 html) 文件有效
    • 以"4"开头: 客户端错误
      • 404 : 请求的资源没有找到, 即客户端错误的请求了不存在的资源
    • 以"5"开头: 服务端错误

    其他响应头

    • 下面三样响应头一起使用, 目的是告诉浏览器不要缓存
      • Expires: -1;
      • Cache-Control: no-cache;
      • Pragma: no-cache;
    • 自动刷新响应头
      • Refresh:3;url=http://baidu.com
      • 表示浏览器会在 3 秒之后请求 http://baidu.com

    HTML 中指定响应头

    • 在 HTML 页面中可以使用 "<meta http-equiv="属性名" content="属性值"> 来指定响应头

    GET 和 POST 请求

    • GET 请求没有请求体
    • POST 请求可以有请求体
    // POST 请求
    
    // Referer: http://localhost:8080/hello/index.jsp
            // 表示请求来自哪个页面. 而在浏览器地址栏中直接输入的地址, 没有 Referer 请求头
            // 可以通过 Referer 统计访问量或者防盗链
    
    // Content-Type: application/x-www-form-urlencoded
        // 表示表单中的数据会自动使用 url 进行编码
    
        // url 编码的数据都是以 "%" 为前缀, 后面跟随两位的 16 进制.
        // "张三" 的 url 编码结果: %E5%BC%A0%E4%B8%89
    

    **参考资料:** - [JavaWeb 视频教程](https://www.bilibili.com/video/av12752958/#page=14)
  • 相关阅读:
    linux 卸载软件
    RYU基础整理
    FlowVisor相关
    RYU的GUI安装
    Ubuntu下apt-get与pip安装命令的区别
    mininet安装,使用
    Java中的Enum(枚举)用法介绍
    jquery选择器大全参考
    Oracle数据库SQL语句操作大全汇总
    SQLServer数据库语句大全汇总
  • 原文地址:https://www.cnblogs.com/linkworld/p/7574744.html
Copyright © 2011-2022 走看看