HTTP:
post 和 get 是 HTTP 协议中的两种方法。浏览器和服务器的交互是通过 HTTP 协议执行的,他的全称为Hyper Text Transfer Protocol(超文本传输协议)。HTTP是为了让客户端与服务器之间的请求与答应,HTTP 中,浏览器与服务器进行交流,定义了不同方法
基本方法有四种:(这四种方法可以理解为,对服务器资源的 查,改,增,删。)
- get:从服务器上获取数据,也就是所谓的查,仅仅是获取服务器资源,不进行修改。
- post:向服务器提交数据,这就涉及到了数据的更新,也就是更改服务器的数据。
- put:PUT的英文含义是放置,也就是向服务器新添加数据,就是所谓的增。
- delete:从字面意思也能看出,这种方式就是删除服务器数据的过程。
Get:
- get交互方式是从服务器上获取数据,而并非修改数据,所以是安全的。
- get交互方式是幂等的,幂等是一个数学概念,幂等函数就是可以使用相同参数重复执行,并且获得相同结果的函数。get在这里对同一个URL的多个请求,得到的结果是相同的
post:
- post交互是可以修改服务器数据的一种方式,涉及到信息的修改,就会有安全问题。
- 一般的post交互是要用到表单的,但是表单提交的默认方法是get,如果要改为post,就需要修改表单提交时的method
二者区别:
get:
- get是从实体的方式 得到由请求URL所指定资源的信息,或者说get得到的信息是资源,而不是资源的处理过程
- 请求的数据会附加在URL之后,以?分割URL和传输数据,多个参数用&连接。
- URL长度受限,传输的数据大小受限,不超过2KB
- GET方式服务器端用Request.QueryString获取变量的值。
- 传输的参数安全性低,传输的数据会显示在请求的URL上
post:
- 向目的服务器发出请求,要求他接收被附在请求后的实体,并把它当做请求队列中请求URL所指定资源的附加新子项
- post方式将表单内各个字段和内容放置在HTML header中一起传送到action属性所指定的URL地址,用户是看不到这个过程的
- post方式传送的数据量比较大,一般被默认没有限制,但是根据IIS的配置,传输量也是不同的
- post方式传输的数据安全行比较高,因为数据传输不是明显显示的