先说相同点,只有了解了相同点之后才能理解为什么会发生混淆。两者都能向服务器发送数据,提交的“内容”[注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方式

提交的数据量有限制

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

数据量大

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

不安全

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

相对安全

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

随机推荐

  1. C#实现两个时间相减的方法

    脚本之家看到的,关于两个时间差值的获取 http://www.jb51.net/article/60177.htm using System; using System.Collections.Gen ...

  2. web基础----->servlet中得到请求的数据

    对tomcat的源码做一些分析,今天我们就开始servlet中的请求分析. form表单中的默认类型 一.在index.jsp中get请求: <form action="Paramet ...

  3. webpack打包jquery并引用

    一,引入webpack插件 //打包第三方 const CommonsChunkPlugin = require("webpack/lib/optimize/CommonsChunkPlug ...

  4. session.setAttribute和session.getAttribute

    网上搜了些资料 ----------------------------------------------------------------------------- B/S架构中,客户端与服务器 ...

  5. nutch 1.7导入Eclipse

    1.下载Nutch1.7的包 apache-nutch-1.7-src.zip,解压之后应该包括 bin,conf,src等目录 2.将解压之后的 apache-nutch-1.7 文件夹放到ecli ...

  6. 【BZOJ1901】Zju2112 Dynamic Rankings 主席树+树状数组

    [BZOJ1901]Zju2112 Dynamic Rankings Description 给定一个含有n个数的序列a[1],a[2],a[3]……a[n],程序必须回答这样的询问:对于给定的i,j ...

  7. [Bootstrap] install Bootstrap framework in window 7 by npm

    Install with npm You can also install Bootstrap using npm: $ npm install bootstrap require('bootstra ...

  8. 【MySQL案例】error.log的Warning:If a crash happens thisconfiguration does not guarantee that the relay lo(转)

    标签: 1.1.1. If a crash happens thisconfiguration does not guarantee that the relay log info will be c ...

  9. ping 10.13.5.233

    3. 环境 URL选择器 tableView ping 10.13.5.233

  10. flask sqlaichemy中filter和filter_by

    简单总结一下: 查询的三种方式: 要实现组合查询,要么连续调用filter:q = sess.query(IS).filter(IS.node == node).filter(IS.password ...