HTTP 请求:GET vs. POST
两种在客户端和服务器端进行请求-响应的常用方法是:GET 和 POST。
GET:从指定的资源请求数据。
一般用于
信息获取,使用URL传递参数,对所发送信息的数量也有限制,一般在2000个字符。
注释:GET 方法可能返回缓存数据。
POST:向指定的资源
提交要处理的数据。
一般用于修改服务器上的资源,对所发送的信息没有限制。
POST 方法不会缓存数据,并且常用于连同请求一起发送数据。
GET 还是 POST?
与 POST 相比,GET 更简单也更快,并且在大部分情况下都能用。
然而,在以下情况中,请使用
POST 请求:
- 无法使用缓存文件(更新服务器上的文件或数据库)
- 向服务器发送大量数据(POST 没有数据量限制)
- 发送包含未知字符的用户输入时,POST 比 GET 更稳定也更可靠
GET方式需要使用 Request.QueryString 来取得变量的值
POST方式通过 Request.Form 来获取变量的值
也就是说 Get 是通过地址栏来传值,而 Post 是通过提交表单来传值。
一个完整的HTTP请求过程,通常有下面7个步骤:
1.建立TCP链接;
2.web浏览器向web服务器发送请求命令;
3.web浏览器向web服务器发送请求头信息;
4.web服务器应答;
5.web服务器发送应答头信息;
6.web服务器向浏览器发送数据;
7.关闭TCP链接;
一个HTTP请求一般由四部分组成:
1.HTTP请求的方法或动作,比如get/post;
2.正在请求的URL;
3.请求头,包含一些客户端环境信息,身份验证信息等;
4.请求体,即请求正文。包含客户提交的查询字符串信息,表单信息等等;
一个
HTTP响应一般由三部分组成:
1.一个数字和文字组成的状态码,用来显示请求是成功还是失败;
2.响应头,和请求头一样包含许多有用的信息,例如服务器类型、日期时间、内容类型和长度等;
3.响应体,即响应正文;
HTTP状态码由3位数字构成,其中首位数字定义了状态码的类型:
1xx:信息类,表示收到web浏览器请求,正在进一步处理中;
2xx:成功,表示用户请求被正确接收,理解和处理。例如:200 ok
3xx:重定向,表示没有成功,客户必须采取进一步的动作
4xx:客户端错误,表示客户端提供的请求有错误,
例如: 400 NOT FOUND 表示请求中所引用的文档不存在
5xx:服务器错误,表示不能完成对请求的处理。例如:500
补充:
HTTP是基于客户端/服务端(C/S)的架构模型,通过一个可靠的链接来交换信息,是一个无状态的请求/响应协议。
HTTP是一个基于TCP/IP通信协议来传递数据