区别:

参数:get通过url进行传递;post放在request body中
长度:get请求在url的长度是有限制的;而post没有(其实这个限制是来自浏览器和web服务器对url的限制,并不是http协议)
安全:get由于直接将参数暴露在url中所以不能用来传递敏感信息,而post就不会有这个问题
编码:get只能进行url编码,而post支持多种编码合适
速度:由于get的data都在url里面所以速度较快(如果在网络环境好的情况下和这个可以差距忽略,反而在网络环境差的情况下两次包的tpc在验证数据的完整性上,有更大的优点 )
缓存:get请求可以被浏览器缓存,post请求不会被浏览器缓存
数据包:get由于data都在url里面,浏览器会把http的header和data一并发送,所以只残生一个数据包服务器响应200;post,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响200 ok(不过这不是post的必然行为是部分浏览器或框架的请求方式)
本质:本质上来说get和post并没有差别,底层都是tcp/ip协议,但是由于http的规定和浏览器、服务器的限制,导致他们在应用过程中出现了不用的形式
 

扩展:

tcp/ip协议:是用于因特网的通讯协议-是供已连接因特网的计算机进行通信的协议
tcp:(传输控制协议)-应用于程序之间的通信
ip:(网际协议)-计算机之间的通信
http: 超文本传输协议-是用于从万维网服务器传输超文本到本地浏览器的传送协议;是基于tcp/ip通信协议来传递数据
关系:
tcp就想汽车,我们用tcp来运输数据,他很可靠,从来不是发生少件的现象
但是如果都是一样的汽车那就会一团乱,为了避免混乱
所以交通规则诞生了他就是http,他为tcp提供了服务类别(pot、get、put、dalete。。。。)
但是,我们只看到HTTP对GET和POST参数的传送渠道(url还是requrest body)提出了要求。“标准答案”里关于参数大小的限制又是从哪来的呢?
那就是万维网中另一个重要的角色:运输公司(浏览器)
理论上你可以在车顶无限推货物(url中无限加参数),但是数据量太大会给浏览器和服务器造成很大的负担。
所以业界有不成文的规定,大多数浏览器会限制url长度在2k字节,而大多数服务器最多处理64k大小的url

最新文章

  1. 【转载】学习资料存档:jQuery的deferred对象详解
  2. SVG Drawing Animation - SVG 绘制动画
  3. 多个div 一行显示的处理方式
  4. Qt技巧:QProcess与外部程序的调用
  5. mysql中的timestamp类型时间比较:unix_timestamp函数
  6. x2engine
  7. python Post方式发起http请求 使用百度接口地理编码
  8. Accounting Flexfield Setup and Usage (Doc ID 124333.1)
  9. Python网络爬虫精要
  10. C. 新年的繁荣
  11. 基于H5的WebSocket简单实例
  12. Nmap扫描常用参数
  13. 调用 LoadLibraryEx 失败,在 ISAPI 筛选器 "C:\Windows\Microsoft.NET\Framework\v4.0.30319\\aspnet_filter.dll" 上
  14. :状态模式:GumballMachine
  15. Luogu 2577[ZJOI2005]午餐 - 动态规划
  16. websoclet简单示例 my 改
  17. 【AIX】查看系统内存、CPU等信息
  18. Spring Boot 2.0官方文档之 Actuator(转)
  19. linux普通用户免秘钥登录(xshell工具环境)
  20. Angular学习笔记—创建一个angular项目

热门文章

  1. 第二周训练 | 搜索技术 4.3 BFS
  2. codecs模块, decode、encode
  3. ST表——————一失足成千古恨系列2
  4. 【CDN+】 Hbase入门 以及Hbase shell基础命令
  5. Linux学习篇(一)-初识Linux
  6. iframe父窗口和子窗口的调用方法
  7. Play with Chain 【HDU - 3487】【Splay+TLE讲解】
  8. Ural Amount of Degrees(数位dp)
  9. jQuery基础--CSS操作、class操作、attr操作、prop操作
  10. Python 学习笔记20 自定义robot Framework 关键字