先说相同点,只有了解了相同点之后才能理解为什么会发生混淆。两者都能向服务器发送数据,提交的“内容”[注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. Binary XML file line #17<vector> tag requires viewportWidth > 0

    Android高版本对比低版本 在我的项目中更改成 //buildToolsVersion '21.1.2'buildToolsVersion '24.0.1' // 24.0.1 必须用这个否则报B ...

  2. CocoaPods的 安装 /卸载/升级

    CocoaPods用来管理第三方框架 Mac 安装 Cocoapods 导引如果你的 Mac OSX 升级到 10.11.x+, 并且需要安装 Cocoapods, 可以参考本博客.安装 rubyMa ...

  3. MUI 图片上传剪切预览,可选(拍照+系统相册)

    整合网上的例子..麻蛋.没跑通..没办法.自己就拿他们的例子完善了一下..已经可以使用了! 准备工作: 这几个文件要引入.特别是JS 文件!!! <link href="../css/ ...

  4. java中的Iterator和Iterable 区别

    java.lang.Iterable java.util.Iterator 来自百度知道: Iterator是迭代器类,而Iterable是接口. 好多类都实现了Iterable接口,这样对象就可以调 ...

  5. 【BZOJ3003】LED BFS+状压DP

    [BZOJ3003]LED Description LED屏是由一个庞大的点阵小灯泡组成的,一开始每个小灯泡都不发光.每一行一共有N个小灯泡,依次标号为1~n.现在给定K个点,要求这K个点发光,其余点 ...

  6. Unity3D 笔记一 初始Unity3D

    一.初步认识Unity 1.Unity支持C#.JavaScript.Boo,JavaScript不是标准语法,常称为UnityScript更合适 2.Update 每一帧都会调用该方法.Start. ...

  7. 暴力破解工具hydra

    Hydra是一个并行登录的裂解装置,它支持众多的协议来攻击.新的模块很容易的添加,旁边,它是灵活的,而且速度非常快. 首先安装的是hydra的支持库包软件. yum -y install openss ...

  8. mysql报错sql injection violation, syntax error: syntax error, expect RPAREN, actual IDENTIFIER

    mysql报错sql injection violation, syntax error: syntax error, expect RPAREN, actual IDENTIFIER 处理,在控制台 ...

  9. 【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 ...

  10. MacBook Pro Retina 安装WIN7 - 对抗模糊及其它

    最近对虚拟机里的WIN7受够了,把整个虚拟机都删了,准备装双系统. 安装过程还是很简单的,网上教程一大堆,就是通过MAC OS X自带的BootCamp工具来管理整个安装过程,我是用外置光驱安装的,没 ...