HTTP协议中Get与Post请求

前言

这一段时间又了解到了一些自己之前没有接触过的东西,感觉挺容易混淆的,于是在学习完之后,就对其就行了总结、区分!

分享

首先,HTTP协议中包含了四种提交方式:get,post,delete,和put;get和post是最常见的两种。

(1)如果表单是以get方式将数据发送到服务端,那么会将用户在表单中输入的数据放在浏览器的地址栏中发送到服务端(包括账号,密码都是显示出来的,所以不安全)

格式:http://localhost:13840/RequestMethod/AddInfo.ashx?txtName=Itcast&txtPwd=123

结果:

在这里插入图片描述
以表单元素name属性的值=用户输入的值&以表单元素name属性的值=用户输入的值

在服务端接收数据:

string userName = context.Request.QueryString[“txtName”];//接收的是表单元素name属性的值,QueryString只能接收get类型的,Form接收post类型的
string userPwd = context.Request.QueryString[“txtPwd”];//接收值

(2)如果数据以post提交,那么表单中的数据全部都放在请求报文的请求体中,可以发送的数据比get大,搜索的时候一般用get

格式:http://localhost:13840/RequestMethod/AddInfo.ashx

在这里插入图片描述

txtName=itcast&txtPwd=123

在服务端接收文件的时候:

string userPwd = context.Request.Form[“txtPwd”];//接收post类型的
string userPwd = context.Request.Form[“txtPwd”];

string userName = context.Request.QueryString[“txtName”];//接收的是表单元素name属性的值,QueryString只能接收get类型的,Form接收post类型的

小结

①get请求会被浏览器主动进行缓存,而post不会(除非是手动设置)

②get的请求参数会永远保存在浏览器的记录里,但是post中的参数不会被保留

③get的安全性比较低,post的安全性相对较高

④get请求会在请求之前对非ASCII字符进行转码,而post则不需要转码(因为post在Request body中,可以传输非ASCII字符)

⑤他们都是基于http这个准则,都是TCP链接,他们做的事儿是一样的,如果都用get,在Request body中隐藏了数据,不同的服务器处理方式是不同的,有的服务器会漏掉一些数据,有的干脆就直接跳过。

⑥get产生一个TCP数据包,post产生两个TCP数据包(Firefox在post中只发送一次)

⑦get是向服务器发索取数据的一种请求,post是向服务器提交数据的一种请求

⑧只是在做简单的查询统计的时候(不涉及安全问题),用get比较好,而做数据添加、删除、修改的时候(设计安全性问题时),要用post请求

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 15
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值