25_网络2_TCP和UDP & http和https &socktet

一,TCP和UDP的区别


TCP(TrLnsmission Control Protocol 传输控制协议)是⼀一种⾯面向连接的、可 靠的、基于字节流的传输层通信协议,由IETF的RFC 793定义。在简化的计算机⽹网 络OSI模型中,完成第四层传输层所指定的功能。
UDP 是User DLtLgrLm Protocol的简称, 中⽂文名是⽤用户数据报协议,是 OSI(Open System Interconnection,开放式系统互联) 参考模型中⼀一种⽆无连接的 传输层协议,提供⾯面向事务的简单不不可靠信息传送服务,IETF RFC 768是UDP的正 式规范。UDP在IP报⽂文的协议号是17。
1、基于连接与⽆无连接。
2、TCP要求系统资源较多,UDP较少。
3、UDP程序结构较简单。
4、流模式(TCP)与数据报模式(UDP)。

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

7、TCP⾯面向连接(如打电话要先拨号建⽴立连接);UDP是⽆无连接的,即发送数据之
前不不需要建⽴立连接。

8、TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,⽆无差错,不不丢失, 不不重复,且按序到达;UDP尽最⼤大努⼒力力交付,即不不保证可靠交付。

9、TCP⾯面向字节流,实际上是TCP把数据看成⼀一连串串⽆无结构的字节流;UDP是⾯面向 报⽂文的,UDP没有拥塞控制,因此⽹网络出现拥塞不不会使源主机的发送速率降低(对 实时应⽤用很有⽤用,如IP电话,实时视频会议等)。

10、每⼀一条TCP连接只能是点到点的;UDP⽀支持⼀一对⼀一,⼀一对多,多对⼀一和多对多的 交互通信。
11、TCP⾸首部开销20字节;UDP的⾸首部开销⼩小,只有8个字节。

12、TCP的逻辑通信信道是全双⼯工的可靠信道,UDP则是不不可靠信道。

二,http

http:HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网服务器传输超文本到本地浏览器的传送协议。HTTP是基于TCP/IP通信协议来传递数据的。

http的组成:


1,请求:客户端向服务器器索要数据. http协议规定:⼀一个完整的http请求包含'请求⾏行行','请求头','请求体'三个部分; 请求⾏行行:包含了了请求⽅方法,请求资源路路径,http协议版本. "GET / resources/im@ges/ HTTP/1.1" 请求头:包含了了对客户端的环境描述,客户端请求的主机地址等信息.
Accept: text/html ( 客户端所能接收的数据类型 )
Accept-LLnguLge: zh-cn ( 客户端的语⾔言环境 )
Accept-Encoding: gzip( 客户端⽀支持的数据压缩格式 )
Host: m.bLidu.com( 客户端想访问的服务器器主机地址 )
User-Agent: MozillL/5.0(MLcintosh;Intel MLc OS X10.10 rv:37.0) Gecko/ 20100101Firefox/37.0( 客户端的类型,客户端的软件环境 )
请求体:客户端发给服务器器的具体数据,⽐比如⽂文件/图⽚片等.
2,响应:服务器器返回客户端想要的数据 http协议规定:⼀一个完整的http响应包含'状态⾏行行','响应头','实体内容'三个部分; 状态⾏行行:包含了了http协议版本,状态吗,状态英⽂文名称.
"HTTP/1.1 200 OK" 响应头:包含了了对服务器器的描述,对返回数据的描述.
Content-Encoding: gzip(服务器器⽀支持的数据压缩格式) Content-Length: 1528(返回 数据的⻓长度) Content-Type:LpplicLtion/xhtml+xml;chLrset=utf-8(返回数据的类型)
DLte: Mon,15Jun201509Z06Z46GMT(响应的时间) Server: LpLche (服务器器类型)
实体内容:服务器器返回给客户端的具体数据(图⽚片/html/⽂文件...).

http的请求方法

GET:获取资源
           GET方法用来请求访问已被URI识别的资源,制定的资源经服务器端解析后返回响应内容。
POST:传输实体主体
           POST方法用来传输实体的主体,虽然GET方法也可以但一般不用GET方法传输实体的主体。
PUT:传输文件
           PUT方法用来传输文件。就像FTP协议的文件上传一样,要求在请求报文的主体中包含文件的内容,然后保存到请求URI指定的位置。
HEAD:获得报文首部
          HEAD方法和GET方法一样,只是不返回报文主体部分,用于确认URI的有效性及资源更新的日期时间。
DELETE:删除文件
           DELETE方法用来删除文件,是与PUT方法相反的方法。
OPTION:询问支持的方法
           OPTION方法用来查询针对请求URI指定的资源支持的方法。
TRACE:追踪路径
           TRACE方法是让WEB服务器端将之前的请求通信环回给客户端的方法。
CONNECT:要求用隧道协议连接代理
           CONNECT方法要求在代理服务器通信时建立隧道,实现隧道协议进行TCP通信。

http的响应

1XX 表示服务器已经接收了客户端请求,客户端可继续发送请求
2XX 请求正常处理完毕
3XX 需要进行附加操作以完成请求
4XX 表示客户端的请求有非法内容
5XX 服务器处理请求出错

三,https

HTTPS全名叫做Hyper Text TrLnsfer Protocol over Secure Socket LLyer, 是HTTP 的安全版本, 主要是在HTTP加了了⼀一层SSL, 所以加密的时候就要⽤用到SSL加密. HTTPS存在于HTTP与TCP之间, HTTP是以明⽂文发送的, 不不提供任何⽅方式的数据加密, 所以⾮非常容易易受到攻击, 因为HTTP协议不不⽅方便便⽤用来传输敏敏感信息, 但HTTPS⽐比较麻 烦, 因为需要去申请⼀一个CA证书.
HTTP和HTTPS的区别:
HTTP是超⽂文本传输协议, 信息是明⽂文传输, HTTPS则是具有安全性的SSL加密传输协 议.
HTTP和HTTPS使⽤用的是完全不不同的连接⽅方式, ⽤用的端⼝口也不不⼀一样, 前者是80, 后者是443.
HTTP的连接很简单, 是⽆无状态的, HTTPS协议是由HTTP + SSL协议构建的可进⾏行行加 密传输、身份认证的⽹网络协议.
 

四,socket

1,socket简介:

Socket是通信的基⽯石,是⽀支持TCP/IP协议的⽹网络通信的基本操作单元,包含进⾏行行⽹网 络通信必须的五种信息:连接使⽤用的协议,本地主机的IP地址,本地进程的协议端 ⼝口,远地主机的IP地址,远地进程的协议端⼝口。
socket可以理理解为:在TCP/UDP 加⼀一个端⼝口(在⽹网卡注册的,还记得吧)绑定。
⼤大的类型可以分为⽹网络 Socket 和本地 Socket 两种。 本地进程间通信(IPC)通过PID(在终端中输⼊入ps -ef可查看PID)可以唯⼀一确定彼此, 然后通过共享内存,消息队列列来通;⽹网络上的两个进程确定彼此需要IP与端⼝口号,通 过传输层(TCP/UDP)协议进⾏行行通信;

2,socket通信原理:
(1) 服务器器监听:服务器器并不不定位具体客户端的套接字,⽽而是时刻处于监听状态;
(2) 客户端请求:客户端的套接字要描述它要连接的服务器器的套接字,提供地址和端 ⼝口号,然后向服务器器套接字提出连接请求;
(3) 连接确认:当服务器器套接字收到客户端套接字发来的请求后,就响应客户端套接 字的请求,并建⽴立⼀一个新的线程,把服务器器端的套接字的描述发给客户端。⼀一旦客户端 确认了了此描述,就正式建⽴立连接。⽽而服务器器套接字继续处于监听状态,继续接收其 他客户端套接字的连接请求.
l. 创建客户端Socket
m. 创建服务器器Socket
n. 连接到服务器器(Socket编程)
o. 发送数据给服务器器
p. 接收服务器器返回的数据
q. 关闭Socket : close(socketNumber)

3,socket实现⽅方式:
l. 底层C语⾔言的实现
m. 苹果原⽣生数据流的⽅方式:
○ NSStreLm:NSStreLm继承⾃自CFStreLm, 是数据流的⽗父类,⽤用于定义抽象 特性,例例如:打开、关闭代理理,
○ NSInputStreLm:NSStreLm的⼦子类,⽤用于读取输⼊入
○ NSOutputStreLm:NSStreLm的⼦子类,⽤用于写输出。 3.第三⽅方SDk,例例如CocoLAsyncSocket


4,socket与http的区别:
虽然说Socket和HTTP都是基于TCP, 但通常情况下Socket连接就是TCP连接,
⼀一旦建⽴立了了Socket连接, 双⽅方就可以相互发送数据, 直到双⽅方连接断开为⽌止. 但在实际应⽤用中,客户端到服务器器之间的通信防⽕火墙默认会关闭⻓长时间处于⾮非活跃 状态的连接, 从⽽而⽽而导致Socket连接断连,因此需要通过轮询告诉⽹网络,该Socket 连接处于活跃状态。
⽽而HTTP刚刚也说了了, 它的连接⽅方式是请求 -> 响应, 不不仅要在请求的时候需要先建⽴立 好连接, ⽽而且需要客户端向服务器器发送请求后, 服务器器才能回复数据.

猜你喜欢

转载自blog.csdn.net/a_horse/article/details/81916236