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。