美文网首页
iOS - 网络相关和TCP/IP

iOS - 网络相关和TCP/IP

作者: ShIwEn9 | 来源:发表于2019-06-15 17:29 被阅读0次
image.png image.png

TCP/IP协议簇:

TCP/IP通常指的是一个集合,不单单是指TCP和IP协议。

通常,我们使用的网络是在TCP/IP协议簇的基础上运作的,而HTTP协议是属于它的一个子集。

计算机和网络设备需要通信,双方就必须要给予相同的方法,这一切都需要规则,而我们则把这些规则称之为协议。

在协议簇中规定了很多各种各样的内容,如选址方法,双方建立通行的顺序等等。这些协议如(ICMP DNS TCP FTP HTTP SNMP PPPoE IP FDDI)等等,通常我们把TCP/IP认为是在IP协议的通信过程中,使用到的协议簇的统称。

image.png
    // OSI :七层模型 (开发系统互连)open system Interconnect
    // ISO :国际标准化组织
    // 物理层 、 数据链路层 、 网络层 、 传输层 、 会话层 、 表示层 、 应用层
    // 1-4 为 下层协议 5-7 为上层协议
    /*
     物理层:
            将二进制数据转换成电流 将电流转换成二进制;( 数模转换 和 模数转换 )
        中继器:将电信号放大
     */
    
    /*
     数据链路层:
            定义一个标准帧格式 ( 起始位层 + 数据 + 地址 + 校验 + 截至位层 )确保数据的可靠传输和可识别
     */
    
    /*
     网络层:
            防止阻塞  选择最优路径 + 分组数据包(接收的时候要去有序的组装)
     */
    
    /*
     传输层:( 不进行数据的传输 )
            定义了一些协议和端口号( 如HTTP的端口80 )
        端口号:每一个应用有很多的服务,每一个服务对应一个端口号,且端口号是唯一的
        TCP:强链接 会发生三次握手 ,传输控制协议,传输的安全性高、传输效率低,可靠性强,用于传输可靠性高,数据量大的文件
        UDP:不会建立强链接 ,用户数据报协议,传输数据的安全性低,可靠性不高,数据不准确,性能高,效率高。用于传输可靠性不高,数据量小的数据。
            如:游戏中的卡顿是因为丢包,导致解析不了数据,界面卡顿
     */
    
    /*
     会话层:
            建立数据传输的通路,进行数据的传输,在你的系统中发送或者接收数据请求
     */
    
    /*
     表示层:
            通过一种通用格式来实现不同数据之间的转换
     */
    
    /*
     应用层:
            为用户的应用程序提供网络服务
     */
    
    /*
    socket:
            学名:套接字 俗称:插座
            传输层以上都是套接字
            应用层和传输层之间的桥梁
            socket = IP地址 + 端口号 的绑定
    */

HTTP协议的介绍

超文本传输协议,访问的是远程的网络资源,格式是:http://

规定客户端和服务器能有效的进行数据沟通。

HTTP的基本通行过程:

1.请求:客户端向服务器索要数据

2.响应:服务器返回客户端相应的数据 image.png

具体步骤:

1.确定请求路径URL

2.获取主机名

3.DNS域名解析

4.获得端口号

5.连接到获取到的端口(通过三次握手建立连接)

6.发送一个HTTP 如:GET请求

7.接收到服务器的响应

8断开链接(1.1之后持续链接)

image.png

常用的协议还有:

1.file:访问的是本地计算机上的资源,格式是file:// (不用加主机地址)

2.mailto:访问的是电子邮件地址,格式是mailto:

3.ftp:访问的是共享主机的文件资源,格式是FTP://

客户端通过URL来找到想要链接的服务器:

URL:统一资源定位符

URL的基本格式:协议://主机地址/路径.

1. http://www.yayuanzi.com/img/logo.png IP地址

  1. http://202.108.22.5/img/logo.png 域名

协议:不同的协议,代表着不同的资源查找方式、资源传输方式

主机地址:存放资源的主机(服务器)的IP地址(域名)

路径:资源在主机(服务器)的位置

发送HTTP请求的方法:

最常用的GET和POST方法,他们就可以完成增删改查的请求

参数:传递给服务器的具体数据,比如登录的账号和密码

一、GET和POST的对比:

1.主要体现在数据的传递上:

2.安全性:GET请求是直接将参数暴露在参数里面,外界可以访问到,而POST不是放在请求体里面,相对而言更加的安全。

二、GET和POST的选择:

总结就是:索取数据(数据查询)的时候用GET请求,其他情况都是POST请求

image.png

三、HTTP通行过程 - 请求

完整HTTP协议请求包含以下内容:

1.请求头:包含了对客户端的环境描述、客户端请求的数据等

image.png

2.请求体:

image.png

请求体不是必要的 - get请求没有请求体,因为它把数据放在参数后面

四、HTTP通行过程 - 响应

客户端向服务器发送请求,服务器应当做出响应,即返回数据给客户端

HTTP协议规定:1个完整的HTTP响应中包含了一下内容:

1.响应头:包含了对服务器的描述,对返回数据的描述

image.png

2.响应体:服务器返回给客户端的具体数据,比如文件数据

对比:

GET把参数放在URL的后面,POST把参数放在请求体里面,相对安全

image.png

调试常见的响应状态码:

image.png image.png

广告:本人实习生,最近想换个工作环境,如果觉得我还可以的话,请向我留言,安徽,杭州,南京地区的都可以。。

相关文章

网友评论

      本文标题:iOS - 网络相关和TCP/IP

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