• 关于GET POST


    先说相同点,只有了解了相同点之后才能理解为什么会发生混淆。两者都能向服务器发送数据,提交的“内容”[注1]的格式相同,都是var_1=value_1&var_2=value_2&....get 和 post 区别如字面,一个是get(获取),一个是post(发送)。get用来告诉服务器需要获取哪些内容(uri+query),向静态页面(uri)请求则直接返回文件内容给浏览器,向一个动态页面请求时可以提供查询参数(query)以获得相应内容。post用来向服务器提交内容,主要是为了提交,而不是为了请求内容,就是说post的初衷并不要求服务器返回内容[注2],只是提交内容让服务器处理(主要是存储或者处理之后再存储)。

    get的长度限制在2048字节(由浏览器和服务器限制的,这是目前IE的数据,曾经是1024字节),很大程度上限制了get用来传递“存储数据”的数据的能力,所以还是老老实实用来做检索吧;post则无此限制(只是HTTP协议规范没有进行大小限制,但受限于服务器的处理能力),因此对于大的数据(一般来说需要存储的数据可能会比较大,比2048字节大)的传递有天然的优势,谁让它是 nature born post 呢

    get提交的数据是放在url里,目的是灵活的向服务其提交检索请求,可以在地址栏随时修改数据以变更需要获取的内容,比如直接修改分页的编号就跳到另外一个分页了(当然也可能是 404)。post提交的数据放在http请求的正文里,目的在于提交数据并用于服务器端的存储,而不允许用户过多的更改相应数据(主要是相对于在url 修改要麻烦很多,url的修改只要点击地址栏输入字符就可以了),除非是专门跑来编辑数据的。

    HTTP协议get/post求方式

    1、HTTP

    hypertext transfer protocol 超文本传输控制协议

    浏览器与web器之数据传输的方式与数据格式(W3C)

    2、数据传输的方式

    (1)浏览求建立接。

    (2)浏览器向服求。

    (3)服

    (4)服送响,然后立即关闭连接。

    注:如果浏览器想向服器再送一个求,需要重新求建立接。

    3、数据格式

    (1)求数据包

    1)求行

    求方式(get/post) 源的路径 HTTP协议版本(1.0/1.1)

    2)若干消息

    浏览器与服器之的一些定。

    比如,浏览器可以告浏览器名称、版本等信息。

    3)体内容

    如果是post方式,求数据会存放到体内容里面。

    如果是get方式,会放到求行中的源路径之后。

    (2)响数据包

    1)状

    协议版本号态码态码的描述

    态码

    200 正常

    300 请求的资源可在多处得到

    400 错误请求

    401 未授权

    403 禁止访问

    404 找不到

    500 系内部错误

    2)若干消息

    比如服器可以向浏览cookie

    3)体内容

    理完之后的果,一般要求浏览示的数据。

    4、get/post求方式

    (1)get方式:

    1)表提交的方式

    2)直接在浏览器地址栏输入地址

    3)通过链访问某个地址

    (2)get方式的特点:

    1)在地址求数据;

    2)求数据会放到源路径后面;

    3)get方式一般用于向服源;

    4)浏览器有可能get方式访问过的数据。

    (3)post方式:

    置表method="post"

    (4)post方式的特点:

    1)数据不会在地址栏显示;

    2)数据会存放到体内容里;

    3)post方式一般用于向服器提交数据;

    (5)优缺点比较

    get方式

    post方式

    提交的数据量有限制

    (因为只能存放到请求行之后)

    数据量大

    (因为存放在实体内容里面)

    不安全

    (在浏览器地址栏能看到数据)

    相对安全

    (实体内容中的数据仍没有加密,可借助工具查看)

     

     

  • 相关阅读:
    Ad hoc access to OLE DB provider 'Microsoft.ACE.OLEDB.12.0' has been denied. You must access this provider through a linked server.
    阻塞问题:会话是sleeping的,但是open_tran 不是0
    windows Server DNS服务器配置
    内存缺页
    "ros::NodeHandle"的用法:全局vs.私有
    python 判断当前执行用户是否是 root 用户
    docker 安装及启动 postgresql 及navicat 连接
    Mac 在环境变量中隐藏密码或者密钥等信息
    磁盘空间不足导致虚拟机无法启动
    VirtuaBox 下安装 Centos8 无法上网
  • 原文地址:https://www.cnblogs.com/samulescollection/p/3284665.html
Copyright © 2020-2023  润新知