zoukankan      html  css  js  c++  java
  • HTTP中get和post

    HTTP中get和post的区别

    • GET - 从指定的资源请求数据。
    • POST - 向指定的资源提交要被处理的数据
    GET POST
    后退/刷新 无害的 数据会被重新提交
    书签 可收藏为书签 不可收藏为书签
    缓存 能被缓存 不能缓存
    编码类型 application 多为二进制数据使用多重编码
    历史 会保留参数在历史中 不会保存在历史数据中
    对长度的限制 最大为2048 无限制
    对数据类型的限制 ASCII 没有限制,也可以为二进制数据
    安全性 安全性较差,敏感数据,密码请勿使用后 安全性较高
    可见性 数据在URL中对所有人可见 数据不会限制在URL中

    常见问题:

    1. GET方法参数是固定的么?

      在约定中我们的参数是写在?后面,用&分割,解析报文的过程是通过获取TCP数据,用正则表达式等工具获取Header和Body

    2. GET的长度限制:

      浏览器地址栏输入的参数是有限的,Http协议中没有长度限制,对URl的长度限制通常为浏览器或者服务器的原因

    3. POST比GET安全:

      因为POST数据在地址栏中不可见, 但是安全只是相对的,因为HTTP在网络中是明文传输的,要想加密,就必须要用HTTPS

    4. POST会产生2个TCP数据包?

      POST会将Header和Body分开发送,但是HTTP协议中没有明确会产生2个数据包,而且实际测试的时候也不会分开发送,所以分开发送只是部分浏览器和框架的请求方法,不属于POST的必然行为。

    请说一下GET和POST两者的本质区别:

    GET和POST本质上两者没有任何区别。他们都是HTTP协议中的请求方法。底层实现都是基于TCP/IP协议。上述的所谓区别,只是浏览器厂家根据约定,做得限制而已

    HTTP请求,最初设定了八种方法。这八种方法本质上没有任何区别。只是让请求,更加有语义而已。

    • OPTIONS 返回服务器所支持的请求方法
    • GET 向服务器获取指定资源
    • HEAD 与GET一致,只不过响应体不返回,只返回响应头
    • POST 向服务器提交数据,数据放在请求体里
    • PUT 与POST相似,只是具有幂等特性,一般用于更新
    • DELETE 删除服务器指定资源
    • TRACE 回显服务器端收到的请求,测试的时候会用到这个

  • 相关阅读:
    《C# to IL》第一章 IL入门
    multiple users to one ec2 instance setup
    Route53 health check与 Cloudwatch alarm 没法绑定
    rsync aws ec2 pem
    通过jvm 查看死锁
    wait, notify 使用清晰讲解
    for aws associate exam
    docker 容器不能联网
    本地运行aws lambda credential 配置 (missing credential config error)
    Cannot connect to the Docker daemon. Is 'docker daemon' running on this host?
  • 原文地址:https://www.cnblogs.com/pythonywy/p/11449043.html
Copyright © 2011-2022 走看看