美文网首页
需要详细的问题

需要详细的问题

作者: 烟雨平生花飞舞 | 来源:发表于2017-07-20 14:26 被阅读0次

http://www.2cto.com/kf/201604/498022.html

TCP (Transmission Control Protocol)和UDP(User Datagram Protocol)协议属于

传输层协议。

UDP(User Datagram protocol)用户数据报协议,它只提供应用进程寻址和简单的差错检测,并不提供其他功能。

TCP(Transmission Control Protocol,传输控制协议)是面向连接的协议,也就是说,在收发数据前,必须和对方建立可靠的连接。一个TCP连接必须要经过三次“对话”才能建立起来,其中的过程非常复杂,只简单的描述下这三次对话的简单过程:主机A向主机B发出连接请求数据包:“我想给你发数据,可以吗?”,这是第一次对话;主机B向主机A发送同意连接和要求同步(同步就是两台主机一个在发送,一个在接收,协调工作)的数据包:“可以,你什么时候发?”,这是第二次对话;主机A再发出一个数据包确认主机B的要求同步:“我现在就发,你接着吧!”,这是第三次对话。三次“对话”的目的是使数据包的发送和接收同步,经过三次“对话”之后,主机A才向主机B正式发送数据。

1.上传数据是怎么和后台服务器交互的;

后台和前端的交互手段是通过网络接口来实现的.上传数据通过http请求上传,iOS9之后是https请求,需要把数据转换成data类型,然后拼接到POST请求体(body)中,通过请求数据一起发送到服务器上。

对于服务器端的返回的格式,一般使用json格式返回。它有优势,传递数据相对小,ios客户端也容易解析。至于服务器端你可以有多种选择,asp.net/" target="_blank">asp.net,java,php均可。

二、两种请求方式的区别:

1、GET请求,请求的数据会附加在URL之后,以?分割URL和传输数据,多个参数用&连接。URL的编码格式采用的是ASCII编码,而不是uniclde,即是说所有的非ASCII字符都要编码之后再传输。

POST请求:POST请求会把请求的数据放置在HTTP请求包的包体中。上面的item=bandsaw就是实际的传输数据。

因此,GET请求的数据会暴露在地址栏中,而POST请求则不会。

2、传输数据的大小

在HTTP规范中,没有对URL的长度和传输的数据大小进行限制。但是在实际开发过程中,对于GET,特定的浏览器和服务器对URL的长度有限制。因此,在使用GET请求时,传输数据会受到URL长度的限制。

对于POST,由于不是URL传值,理论上是不会受限制的,但是实际上各个服务器会规定对POST提交数据大小进行限制,Apache、IIS都有各自的配置。

3、安全性

POST的安全性比GET的高。这里的安全是指真正的安全,而不同于上面GET提到的安全方法中的安全,上面提到的安全仅仅是不修改服务器的数据。比如,在进行登录操作,通过GET请求,用户名和密码都会暴露再URL上,因为登录页面有可能被浏览器缓存以及其他人查看浏览器的历史记录的原因,此时的用户名和密码就很容易被他人拿到了。除此之外,GET请求提交的数据还可能会造成Cross-site request frogery攻击。

9、解释HTTP中Get和Post,它们有什么区别,哪个使用时更加安全?

Http定义了与服务器交互的不同方法,最基本的方法有4种,分别是GET,POST,PUT,DELETE。URL全称是资源描述符,我们可以这样认为:一个URL地址,它用于描述一个网络上的资源,而HTTP中的GET,POST,PUT,DELETE就对应着对这个资源的查,改,增,删4个操作。到这里,大家应该有个大概的了解了,GET一般用于获取/查询资源信息,而POST一般用于更新资源信息。

一、原理区别

1.根据HTTP规范,GET用于信息获取,而且应该是安全的和幂等的。

2.根据HTTP规范,POST表示可能修改变服务器上的资源的请求。

浅谈HTTP中GET、POST用法以及它们的区别

http://blog.csdn.net/redoq/article/details/52807670

HTTP 协议中GET和POST到底有哪些区别

http://blog.csdn.net/wangzhilife/article/details/12440089

post 相比get 有很多优点,为什么现在的HTTP通信中大多数请求还是使用get?

https://www.zhihu.com/question/31640769

浅谈HTTP中Get与Post的区别

http://blog.csdn.net/heise668/article/details/51725228

iOS网络HTTP、TCP、UDP、Socket 知识总结

http://www.cnblogs.com/dongliu/p/5455331.html

******如何处理多个网络请求并发的情况******

http://www.cnblogs.com/yanhuaxuanlan/p/4683557.html

iOS开发系列--并行开发(处理多个网络请求并发的情况)

http://blog.csdn.net/michaelkiven/article/details/49148821

iOS 多个网络请求并行/并发处理

http://blog.csdn.net/dfdfdfdfdfw/article/details/50856336

34. UDP和TCP的区别是什么?

TCP - UDP

1.基于连接与无连接;

2.对系统资源的要求(TCP较多,UDP少);

3.UDP程序结构较简单;

4.流模式与数据报模式 ;

5.TCP保证数据正确性,UDP可能丢包,TCP保证数据顺序,UDP不保证

TCP:面向连接、传输可靠(保证数据正确性,保证数据顺序)、用于传输大量数据(流模式)、速度慢,建立连接需要开销较多(时间,系统资源)。

UDP:面向非连接、传输不可靠、用于传输少量数据(数据包模式)、速度快。

TCP协议与UDP协议的区别

http://www.cnblogs.com/bizhu/archive/2012/05/12/2497493.html

TCP与UDP的区别

http://blog.csdn.net/yipiankongbai/article/details/24435977

TCP面向连接、传输可靠(保证数据正确性,保证数据顺序)、用于传输大量数据(流模式)、速度慢,建立连接需要开销较多(时间,系统资源)。

UDP面向非连接、传输不可靠、用于传输少量数据(数据包模式)、速度快。

35. TCP/IP建立连接的过程?

- 在TCP/IP 协议中,TCP协议提供可靠的连接服务,采用三次握手建立连接;

- 第一次握手:建立连接时,客户端发送连接请求到服务器,并进入SYN_SEND状态,等待服务器确认;

- 第二次握手:服务器收到客户端连接请求,向客户端发送允许连接应答,

此时服务器进入SYN_RECV状态;

- 第三次握手:客户端收到服务器的允许连接应答,向服务器发送确认,客户端和服务器进入通信状态,

完成三次握手。

(所谓的三次握手,就是要有三次连接信息的发送、接收过程。

TCP连的建立需要进行三次连接信息的发送、接收。)

******APP内部下载和离线下载的实现(像迅雷一样可以离线下载)******

内部下载: 1. 创建NSURLSession 并 根据链接创建一个NSURLRequest

2. 开始下载

3. 在代理中接受数据并根据路径写入到文件夹下

使用NSURLSession

http://www.jianshu.com/p/fafc67475c73

开发只懂 AFN ?搞定 NSURLSession 才是硬道理

http://www.jianshu.com/p/b0ddadd34037

iOS网络1——NSURLConnection使用详解

http://www.cnblogs.com/mddblog/p/5134783.html

iOS网络2——NSURLSession使用详解

http://www.cnblogs.com/mddblog/p/5215453.html

iOS网络3—UIWebView与WKWebView使用详解

http://www.cnblogs.com/mddblog/p/5281748.html

iOS网络4——Reachability检测网络状态

http://www.cnblogs.com/mddblog/p/5304346.html

3、使用过哪些网络请求方式?用过哪些第三方框架,有哪些区别?

http协议申明了客户端与服务端交互的方式,即请求方式:

get、post、put、delete

这四种方式可以对网络资源(url描述的内容)进行:查、改、增、删

CLLocationManager实现定位,查询并实时显示周边商户;

常用的是下面两种:

1:get方法:下行/从服务端获得数据

(1)get请求一般只是从服务器获得数据,请求时一般会提交服务器一些请求参数,附加在url上的,参数之间以&分割。

(2)url中英文和数字原样识别,而中文或者一些其他字符需要编码。

(3)get请求提交的数据一般放在http协议的头header中

2:post方法:上传/上传数据改变服务端内容

(1)post请求多用于给服务器提交数据。

(2)post请求提交的数据一般放在http的主体数据包body中

用过的第三发框架有3种,ASIHttpRequest,AFNetWorking,MKNetWork.

三种的区别:ASIHttpRequest比较臃肿,MKNetWork和AFNektwork感觉比较轻量级,本人推荐MKNetWork,比较简单

NSCache缓存类的详解

http://blog.csdn.net/u013087513/article/details/49386707

http://www.jianshu.com/p/47400383dfe0

http://www.jianshu.com/p/5e69e211b161

http://blog.csdn.net/u010165653/article/details/46472487

http://nshipster.cn/nscache/

iOS网络-优化网络请求性能

http://www.jianshu.com/p/3a2fb50961af

http://www.jianshu.com/p/f842286e664d

网络请求和性能优化

http://www.jianshu.com/p/ab75b24a11e2

在网络请求中如何提高性能

在网络请求中如何保证安全性

iOS 在数据传输过程中有数据泄露的可能,客户端在进行网络请求时一般都采用加密的方式来保证数据的安全性,在iOS9以后,苹果为了保护数据的安全性,使用了Https协议。

NS_CLASS_AVAILABLE(NSURLSESSION_AVAILABLE, 7_0)

@interface NSURLSession : NSObject

关于iOS socket都在这里了

http://www.jianshu.com/p/3e4f3de18e3b

Socket使用大全

http://blog.csdn.net/ch_soft/article/details/7369705/

iOS开发网络篇—Socket编程

http://www.cnblogs.com/hissia/p/5687769.html

ios socket第三方框架 AsyncSocket使用简介

http://blog.csdn.net/wlm0813/article/details/51255097

学习使用AsyncSocket 进行iOS socket编程

http://www.jianshu.com/p/eb9505a4e3b8

iOS应用中使用AsyncSocket库处理Socket通信的用法讲解

http://www.jb51.net/article/83941.htm

《ios开发》之CocoaAsyncSocket使用

http://www.jianshu.com/p/321bc95d077f

******socket是什么?******

(1)socket是一套完成tcp,udp协议的接口。

HTTP协议:简单对象访问协议,对应于应用层,HTTP协议是基于TCP连接的

tcp协议: 对应于传输层

ip协议: 对应于网络层

TCP/IP是传输层协议,主要解决数据如何在网络中传输;而HTTP是应用层协议,主要解决如何包装数据。

Socket是对TCP/IP协议的封装,Socket本身并不是协议,而是一个调用接口(API),通过Socket,我们才能使用TCP/IP协议。Socket的出现只是使得程序员更方便地使用TCP/IP协议栈而已,是对TCP/IP协议的抽象,从而形成了我们知道的一些最基本的函数接口。

http连接:http连接就是所谓的短连接,即客户端向服务器端发送一次请求,服务器端响应后连接即会断掉;

socket连接:socket连接就是所谓的长连接,理论上客户端和服务器端一旦建立起连接将不会主动断掉;但是由于各种环境因素可能会是连接断开,比如说:服务器端或客户端主机down了,网络故障,或者两者之间长时间没有数据传输,网络防火墙可能会断开该连接以释放网络资源。

(2)建立Socket连接至少需要一对套接字,套接字简单来说就是通信的两方的一种约定,用套接字中的相关函数来完成通信过程。其中一个运行于客户端,称为ClientSocket ,另一个运行于服务器端,称为ServerSocket 。

套接字之间的连接过程分为三个步骤:服务器监听,客户端请求,连接确认。

1。服务器监听:服务器端套接字并不定位具体的客户端套接字,而是处于等待连接的状态,实时监控网络状态,等待客户端的连接请求。

2。客户端请求:指客户端的套接字提出连接请求,要连接的目标是服务器端的套接字。为此,客户端的套接字必须首先描述它要连接的服务器的套接字,指出服务器端套接字的地址和端口号,然后就向服务器端套接字提出连接请求。3。连接确认:当服务器端套接字监听到或者说接收到客户端套接字的连接请求时,就响应客户端套接字的请求,建立一个新的线程,把服务器端套接字的描述发给客户端,一旦客户端确认了此描述,双方就正式建立连接。而服务器端套接字继续处于监听状态,继续接收其他客户端套接字的连接请求。

******网络通信用过哪些方式(100%的人说了AFNetworking...)如何处理多个网络请求并发的情况******

1)、直接使用socket的方式

2)、AFNetworking

使用多线程中的并发队列去处理网络的并发请求

http与https的区别,https的好处有哪些?

http://www.mahaixiang.cn/internet/1233.html

HTTPS和HTTP的区别是什么?

https://www.wosign.com/faq/faq2016-0301-02.htm

https协议需要到ca申请证书,一般免费证书很少,需要交费。

http是超文本传输协议,信息是明文传输,https 则是具有安全性的ssl加密传输协议

http和https使用的是完全不同的连接方式用的端口也不一样,前者是80,后者是443。

http的连接很简单,是无状态的。

HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议、要比http协议安全。

HTTPS对比HTTP可以在很大程度上提供安全的DNS基础设施

HTTPS优缺点、原理解析:我们的网站该不该做HTTPS

http://www.chinaz.com/web/2017/0224/663236.shtml

为什么更安全的 HTTPS 协议没有在互联网上全面采用?

https://www.zhihu.com/question/19580839

https://www.zhihu.com/question/25119364

与HTTP有什么区别?HTTPS的七个误解

http://www.chinaz.com/web/2015/0320/391752.shtml

YYModel:

http://blog.csdn.net/u012946824/article/details/51788527

线程:

http://blog.csdn.net/u013488229/article/details/48165569

http://www.cnblogs.com/apem/p/4340484.html

刨根问底Objective-C Runtime

http://www.cocoachina.com/ios/20141224/10740.html

http://www.cnblogs.com/yswdarren/p/3619303.html

自动化编译打包:

http://www.jianshu.com/p/bd4c22952e01

http://www.cocoachina.com/ios/20160302/15501.html

http://www.jianshu.com/p/1229476fbce4

http://www.cnblogs.com/itlover2013/p/5614195.html  坑

多年iOS开发经验总结

http://www.jianshu.com/p/1ff9e44ccc78

http://www.jianshu.com/p/9fcd37c0ea05

iOS Crash 杀手排名

https://github.com/guoshimeihua/RuntimeDemo

相关文章

  • 需要详细的问题

    http://www.2cto.com/kf/201604/498022.html TCP (Transmissi...

  • Keka教程——Mac版压缩软件Keka控制台详细介绍

    为了能够解决一些问题,可能需要在Keka上启用详细模式。那这就需要你对Keka控制台有一个详细的了解,本篇文章将带...

  • 用 Linux 命令显示硬件信息

    通过命令行获取计算机硬件详细信息。 你可能会有很多的原因需要查清计算机硬件的详细信息。例如,你需要修复某些问题并在...

  • CUDA:VS2015不识别texture和tex1Dfetch

    问题详细描述:在学习使用texture memory的时候,首先需要创建一个texture reference,然...

  • 关于Xcode的Other Linker Flags

    问题 最近项目接入第三方sdk遇到了问题,报错信息如下: 详细如下: 最后找到问题是:需要在Building Se...

  • SQL优化

    一、SQL语句编写注意问题 下面就某些SQL语句的where子句编写中需要注意的问题作详细介绍。在这些where子...

  • 详细讲解淘宝店群需要注意的问题

    从自己做淘宝创业开始就遇到很多各种问题,现在我就分享一下做淘宝店群需要注意的问题。小编(lichengsheng9...

  • centos安装elasticsearch6.6

    在虚拟机上安装elasticsearch出现了比较多的问题,由于官网文档没有详细介绍,导致问题比较多需要自己一个一...

  • 零基础的初学者怎样学习java,应该先学什么?

    今天详细的回答这个问题 首先定位:知道如今的市场行情,需要掌握什么技能才能找到一份Java开发的工作,现在公司需要...

  • 12.13商学院-KT法

    状况分析:应该达到的结果没有达到,需要详细分析原因 问题分析:对存在的问题详尽分解,找出真实的原因 决策分析:找出...

网友评论

      本文标题:需要详细的问题

      本文链接:https://www.haomeiwen.com/subject/gondkxtx.html