iOS 网络编程原理URL

一、网络编程基本概念

HTTP-超文本传输协议
HTTP基于请求应答,需要的时候建立连接提供服务,不需要的时候断开链接。
网络编程就是通过使用套接字来达到进程间通信目的的技术。

概念 含义
客户端 Client 移动应用[iOS、Android]
服务器 Server 为客户端提供服务、提供数据、提供资源的机器
请求 Request 客户端向服务器索取数据的一种行为
响应 Response 服务器对客户端的请求做出的反应,一般指返回数据给客户端
客户端想要访问数据,首先要提交一个请求,用于告知服务器想要的数据。  

服务器接受到请求后,就根据该请求到数据库中查找相应的资源  
无论服务器是否成功拿到资源,都会将结果返回给客户端,这个过程就叫响应。
补充:
网络上所有数据都是'二进制数据',并且以二进制流的形式从一个节点到另一个节点。

二、URL

基本格式:
协议://主机地址:端口号/路径

URL全称Uniform Resource Locator,即统一资源定位符,通过一个URL可以找到互联网上唯一的资源,类似于计算机上一个文件的路径。

URL.png

上图URL省略了端口号,实际上,一个完整的URL由四个部分组成,分别是协议IP地址端口路径

协议

指定使用的传输协议,就可以告诉浏览器如何处理将要打开的文件
不同的协议表示不同的资源查找以及传输方式

常见的协议 代表类型 示例
File 访问本地计算机的资源 file:///User/xxx/Desktop/file.html
FTP 访问共享主机的文件资源 ftp://ftp.baidu.com/movies
HTTP 超文本传输协议、访问远程网络资源 http://www.baidu.com
HTTPS 安全的SSL加密传输协议、访问远程网络资源 https://www.jianshu.com/u/21c35a95919e
Mailto 访问电子邮件地址 mailto:null@xxx.cn

IP地址

IP地址[Hostname]被用来给Internet上的每台电脑编号,也叫主机地址。
但是IP地址不容易记忆,如在Safari的地址栏中输入http://180.97.33.107,即可打开百度首页,这表示该地址就是百度的IP地址,但很不容易记忆,故而使用域名www.baidu.com替代以访问网站。

端口

IP地址后面有时还会跟上一个冒号端口号,这是为了在一台设备上运行多个程序,人为的设计了端口[Port]的概念,类似于公司内部的分机号码。每个网络程序,无论是客户端还是服务器端,都对应一个或多个特定的端口号。

协议 端口 说明 全拼
HTTP 80 超文本传输协议 Hypertext transfer protocol
HTTPS 443 超文本传输安全协议 Hyper Text Transfer Protocol over Secure Socket Layer
FTP 20、21、990 文本传输协议 File Transfer Protocol
POP3 110 邮局协议[版本3] Post Office Protocol - Version3
SMTP 25 简单邮件传输协议 Simple Mail Transfer protocol
telnet 23 远程终端协议 teletype network

实际上,每个传输协议都有默认的端口号。它是一个整数,如果输入时省略,则会使用默认端口。
如果要采用非标准的端口号,这时的URL是不能省略端口号的。

路径

路径[Path]是由0或者多个/符号隔开的字符串,一般用于表示主机上的一个目录或者文件的地址。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,841评论 18 139
  • 协议基础 协议就是计算机之间通过网络实现通信时实现所达成的一种“约定”,这种约定使得那些由不同厂商的设备,不同的C...
    d9fc24a0c9a9阅读 2,396评论 0 6
  • 名词延伸 通俗的说,域名就相当于一个家庭的门牌号码,别人通过这个号码可以很容易的找到你。如果把IP地址比作一间房子...
    杨大虾阅读 20,622评论 2 56
  • 1. 基础知识 1.1 3种常见的计算机体系结构划分 OSI分层(7层):物理层、数据链路层、网络层、传输层、会话...
    Mr希灵阅读 19,935评论 6 120
  • 计算机网络学习的核心内容就是网络协议的学习。网络协议是为计算机网络中进行数据交换而建立的规则、标准或者说是约定的集...
    杵臼凉薄yo阅读 32,308评论 5 51