HTTP请求方式优缺点比较

HTTP 定义了与服务器交互的不同方法,最基本的方法是 GET 和 POST。

GET

优点:3个全在一起(接口、链接、数据)可以在浏览器查看,实现简单。所有信息附加都在地址后面
缺点:明文显示,保密性差,通过GET提交数据,用户名和密码将明文出现在URL上。文件操作不方便

GET方式是比较常见的方法。一般不提交大量的数据,都是GET方式来请求网页的,比较来说POST的数据量大。可以看到各种网址后面跟有?id=**,uid=**,action=**,do=**,pn=2一类的,就像在百度进行搜索时的地址栏。数据会附在URL之后(就是把数据放置在HTTP协议头中),以分割URL和传输数据,参数之间以&相连。有些时候浏览器会对地址栏里面的数据进行重新编码,主要是对汉字,如baidu?wd=%D7%D4%BC%BA,后面是“自己”的GBK编码。

POST

优点:密文,保密性好,文件类操作方便,后面不会出现?bjngh

缺点:无法在浏览器里面查看,实现复杂

POST把提交的数据则放置在是HTTP包的包体中,GET方式提交的数据最多只能是1024字节,理论上POST没有限制

区别:GET一般用于获取/查询资源信息,而POST一般用于更新资源信息。总结一下,Get是向服务器发索取数据的一种请求,而POST是向服务 器提交数据的一种请求,在Form(表单)中,Method默认为"GET",实质上,GET和POST只是发送机制不同,并不是一个接收一个发送。

所以我们一般这样操作
1、要求服务器及支持GET,也支持POST
2、写代码前调试接口的时候我们用GET
3、真正开始写代码的时候我们用POST

同步

优点:简单,不需要走代理方法

缺点:线程卡死,等待时间长,尤其是在网络状况不佳的时候,用户体验差,如用TCP方式进行通信时,服务器会等待客户机的连接,Accept方法就是同步的,只有当用户的请求来时,才会继续往下执行,否则就会卡在这这里。最好是配合多线程使用,前面在VC下做聊天工具的时候就将通信部分单独开了一个线程,主线程继续运行来布局界面。当有数据到达时,发送消息即可。

异步

优点: 线程不卡死

缺点: 麻烦 要走代理方法所以我们一般都用异步,同步的时候我们可以手动开一个线程,这样也不会卡主,在这个线程里面进行同步请求,这样住线程也不会被卡住。

这样组合起来就有四种方法:同步GET,同步POST,异步GET,异步POST。

时间: 2024-11-06 20:36:35

HTTP请求方式优缺点比较的相关文章

javaweb解决post和get请求方式中文乱码问题(通用)

添加一个过滤器,解决乱码问题,代码如下: 1 import java.io.IOException; 2 import java.io.UnsupportedEncodingException; 3 import java.util.Map; 4 5 import javax.servlet.Filter; 6 import javax.servlet.FilterChain; 7 import javax.servlet.FilterConfig; 8 import javax.servlet

HTTP深入浅出之http请求和15中以上的请求方式

HTTP的介绍及其通信机制 HTTP(HyperText Transfer Protocol)是一套计算机通过网络进行通信的规则.计算机专家设计出HTTP,使HTTP客户(如Web浏览器)能够从HTTP服务器(Web服务器)请求信息和服务,HTTP目前协议的版本是1.1.HTTP是一种无状态的协议,无状态是指Web浏览器和Web服务器之间不需要建立持久的连接,这意味着当一个客户端向服务器端发出请求,然后Web服务器返回响应(response),连接就被关闭了,在服务器端不保留连接的有关信息.HT

jQuery中ajax的4种常用请求方式

jQuery中ajax的4种常用请求方式: 1.$.ajax()返回其创建的 XMLHttpRequest 对象. $.ajax() 只有一个参数:参数 key/value 对象,包含各配置及回调函数信息.详细参数选项见下. 如果你指定了 dataType 选项,请确保服务器返回正确的 MIME 信息,(如 xml 返回 "text/xml"). 实例: 保存数据到服务器,成功时显示信息. $.ajax({ type: "post", dataType: "

Android——JDK的get请求方式

layout文件: 1 <?xml version="1.0" encoding="utf-8"?> 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 xmlns:tools="http://schemas.android.com/tools" 4 android:layout_width="ma

远程服务器存储之JDK的get请求方式

一.HTTP协议 1.超文本传输协议 2.支持客户端/服务器端模式 3.内容 1-请求协议 1>请求报文格式 1>-请求行:请求方式  请求资源名  协议版本号; 2>-请求消息头 3>-请求体 2>请求方式 1>-POST:请求内容在请求体里,以键=值的形式,键值对之间用&间隔;长度不受限制,保密性高. 2>-GET:请求内容在URL后面用?开始,以键=值的形式,键值对之间用&间隔:请求报文没有请求体:请求数据的长度受到浏览器的限制:请求数据保密

UI13-GET POST 同步,异步-代理 Block请求方式。

http://ipad-bjwb.bjd.com.cn/DigitalPublication/publish/Handler/APINewsList.ashx?date=20131129&startRecord=1&len=5&udid=1234567890&terminalType=Iphone&cid=213 http://project.lanou3g.com/teacher/yihuiyun/lanouproject/activitylist.php 两个接

数据存储——远程服务器存储——JDK的get请求方式

一.HTTP协议 1.超文本传输协议 2.支持客户端/服务器端模式 3.内容 1-请求协议 1>请求报文格式 1>-请求行:请求方式  请求资源名  协议版本号; 2>-请求消息头 3>-请求体 2>请求方式 1>-POST:请求内容在请求体里,以键=值的形式,键值对之间用&间隔;长度不受限制,保密性高. 2>-GET:请求内容在URL后面用?开始,以键=值的形式,键值对之间用&间隔:请求报文没有请求体:请求数据的长度受到浏览器的限制:请求数据保密

Ajax中的get和post两种请求方式的异同

Ajax中我们经常用到get和post请求.那么什么时候用get请求,什么时候用post方式请求呢? 在做回答前我们首先要了解get和post的区别.   1. get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到.post是通过HTTP post机制,将表单内各个字段与其内容放置在HTML HEADER内一起传送到ACTION属性所指的URL地址.用户看不到这个过程.   2. 对于get方式,服务器端用Request.QueryS

http Get和Post请求方式

string postURL ="http://xxxxx.ashx"; List<string> paramName = new List<string>(); List<string> paramValue = new List<string>(); paramName.Add("userName"); paramName.Add("password"); paramValue.Add(&quo