get请求和post请求的区别

get请求和post请求的区别

GET 用于从指定资源请求数据
POST 用于将数据发送到服务器来创建/更新资源
先简单做个铺垫

  • 什么是通信协议?
    通信协议是对计算机必须遵守的规则的描述,只有遵守这些规则,计算机之间才能进行通信。TCP/IP 是不同的通信协议的大集合。HTTP协议只是其中一种。
  • 什么是 HTTP?
    超文本传输协议(Hypertext Transfer Protocol,缩写 HTTP)旨在启用客户端和服务器之间的通信。
  • HTTP 用于从 web 客户端(浏览器)向 web 服务器发送请求,并从 web 服务器向 web 客户端返回内容(网页)。

1、请求过程

  • GET 请求过程:

浏览器发起请求 TCP 连接(第一次握手)
服务器响应进行 TCP 连接(第二次握手)
浏览器确认,并发送 GET 请求头和数据(第三次握手)
服务器返回 200 OK响应

  • POST 请求过程:

浏览器发起请求 TCP 连接(第一次握手)
服务器响应进行 TCP 连接(第二次握手)
浏览器确认,并发送 POST 请求头(第三次握手)
服务器返回100 Continue响应
浏览器发送数据
服务器返回 200 OK响应

2、安全性数据长度等对比

getpost
安全安全性较差更安全
缓存不能
历史参数保留在浏览器历史中参数不会被保存在浏览器历史中
地址栏是否可见不可
数据长度受限制,最大长度为2048个字节无限制
书签不可
后退按钮/刷新无害数据会被重新提交
编码类型application/x-www-urlencodedapplication/x-www-urlencoded或multipart/form-data。为二进制数据使用多重编码

这里扩展一下几种编码格式
POST请求的两种编码格式:application/x-www-urlencoded是浏览器默认的编码格式,用于键值对参数,参数之间用&间隔;multipart/form-data常用于文件等二进制,也可用于键值对参数,最后连接成一串字符传输
3报文上的区别

报文格式上,不带参数时,区别是第一行方法名不同,一个是GET,一个是POST
带参数时报文的区别是,GET 方法的参数放在 url中,POST 方法参数放在 body 中

举个栗子,如果参数是 name=qiming.c, age=22。

GET 方法报文可能是这样的

GET /index.js?name=qiming.c&age=22 

POST 方法报文可能是这样的


POST /index.js 

Content-Type: application/x-www-form-urlencoded name=qiming. c&age=22

4

常见HTTP状态码

状态码描述
200成功
201请求成功并且服务器创建了新的资源
202服务器已接受请求,但尚未处理
203请求正在被执行,但还没有处理完
204服务器成功处理了请求,但没有返回任何内容
301永久重定向
302临时重定向
303表示请求的资源被分配了新的URL,应使用GET方法定向获取请求的资源
304本地缓存
400错误请求,服务器不理解请求的语法
401未经许可,需要通过HTTP认证
403服务器拒绝请求
404服务器找不到请求的资源
500+服务器原因
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值