HTTP协议是一个广泛应用的 Internet 协议,根据 HTTP 标准,HTTP 请求可以使用多种请求方法
HTTP1.0 定义了三种请求方法:GET、POST 和 HEAD
HTTP1.1 新增了五种请求方法:OPTIONS、PUT、DELETE、TRACE 和 CONNECT
这8种HTTP请求方法中 GET 和 POST 方法最为常见。
方法 | 简述 |
---|---|
GET 获取资源 | 请求指定页面的信息,并返回实体的主体,它本质就是发送一个请求来取得服务器上的某一资源,指定的资源经服务器端解析后返回给客户端响应的内容。最常用于向服务器查询某些信息 |
POST 传输实体文本 | 向URL指定的资源提交数据进行处理请求(如提交表单或上传文件),数据被包含在请求体中。POST 请求可能会导致新的资源建立或已有资源的修改。 |
HEAD | 类似于 get 请求,只不过返回的响应中没有具体的内容,用于获取报文头部 |
PUT | 从客户端向服务器传送的数据取代指定的文档的内容。 |
DELETE | 请求服务器删除指定的页面。 |
CONNECT | HTTP/1.1 协议中预留给能够将连接改为管道方式的代理服务器。 |
OPTIONS | 允许客户端查看服务器的性能。 |
TRACE | 回显服务器收到的请求,主要用于测试或诊断。 |
GET和POST的区别
GET 提交的数据会放在 URL 之后,以?分割 URL 和传输数据,参数之间以&相连,如:
EditPosts.aspx?name=test1&id=123456。POST 方法是把提交的数据放在 HTTP 包的Body中。
GET 提交的数据大小有限制(因为浏览器对 URL 的长度有限制),而 POST 方法提交的数据没有限制。
GET 方式需要使用 Request.QueryString 来取得变量的值,而 POST 方式通过Request.Form来获取变量的值。
GET 方式提交数据,会带来安全问题,比如一个登录页面,通过 GET 方式提交数据时,用户名和密码将出现在 URL 上,如果页面可以被缓存或者其他人可以访问这台机器,就可以从历史记录获得该用户的账号和密码。