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

    __clone():克隆的时候会调用__clone方法: __cal:当类里面没有方法的时候会调用__call方法: __toString:当echo的时候会调用__toString方法: __aut ...

  2. Spring学习笔记--通过构造方法创建Bean

    如果一个bean没有默认的构造函数,那么可以通过工厂方法来构造一个bean.Spring通过<bean>元素的factory-method属性来装配工厂创建的Bean.下面例子中的Stag ...

  3. c++11——改进容器性能

    使用emplace_back就地构造 emplace_back能就地通过参数构造对象,不需要拷贝或者移动内存,相比push_back能更好的避免内存的拷贝和移动,使得容器插入元素的性能得到进一步提升. ...

  4. jQuery回溯

    1.jQuery有个很好用的方法是 end(); 2.在进行链式操作时,使用end方法,可以回溯到上一个jQuery对象. 3.实现原理: jQuery内部有一个对象栈,当形成新的对象时,会将新对象推 ...

  5. jquery类似方法的比较(二)

    (1)append()&appendTo()&prepend()$prependTo() (2)after()&before()&insertAfter()&i ...

  6. pano2vr制作360全景图

    1.下载pano2vr中文破解版2.制作360全景选择"矩形球面投影" 3.输出格式选择HTML5, 也可选择Flash(快被淘汰) 4.HTML5输出选项中3个重要选项4.1 F ...

  7. 解读 Android TTS 语音合成播报

    随着从事 Android 开发年限增加,负责的工作项目也从应用层开发逐步过渡到 Android Framework 层开发.虽然一开始就知道 Android 知识体系的庞大,但是当你逐渐从 Appli ...

  8. Java中实现序列化的两种方式 Serializable 接口和 Externalizable接口

    对象的序列化就是将对象写入输出流中. 反序列化就是从输入流中将对象读取出来. 用来实现序列化的类都在java.io包中,我们常用的类或接口有: ObjectOutputStream:提供序列化对象并把 ...

  9. opencv学习笔记——颜色空间转换函数cv::cvtColor详解

    cv::cvtColor()用于将图像从一个颜色空间转换到另一个颜色空间的转换(目前常见的颜色空间均支持),并且在转换的过程中能够保证数据的类型不变,即转换后的图像的数据类型和位深与源图像一致. 具体 ...

  10. python问答模块

    """ 该模块功能:获取用户的输入文本,通过输入文本和数据库中的关键主题文本相比较, 获取最佳的回答内容 """ import xlrd i ...