HTTP 请求:GET vs. POST
2016-05-07 20:05
399 查看
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通信协议来传递数据
两种在客户端和服务器端进行请求-响应的常用方法是: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通信协议来传递数据
相关文章推荐
- Android网络编程要学的东西与Http协议学习
- 判断网络类型
- [Java]一个TCP文本上传相关的异常处理和偶然引出的中文编码问题
- TCPdump抓包命令详解
- iOS 9.0以后网络请求异常
- Android Volley完全解析(二),使用Volley加载网络图片
- No mapping found for HTTP request with URI [/DZCX_Manage/host/toHostMsg.action
- Filter过滤器及HttpServletRequestWrapper使用
- 深度学习之卷积神经网络入门(2)
- Web_Http同步和异步请求区别
- android 获取网络图片生成二维码
- 一起学Netty(七)之 TCP粘包拆包基本解决方案
- 一起学Netty(六)之 TCP粘包拆包场景
- [BZOJ1497] [NOI2006] 最大获利 - 网络流
- parseRequest(RequestContext)还是parseRequest(HttpServletRequest)
- HTTP 与 Socket的区别
- AFHTTPSessionManager
- windows10下使用pyopenssl, pycurl 访问https网站(python)
- CCNA1测试问题1-7
- TCP—为什么是AIMD?