-
网络的基本概念
-
1.客户端:也就是应用,在手机而言的话我们理解为app
-
2.服务器:向客户端提供服务,数据,资源的机器(特殊的电脑)
服务器分:
内网服务器:局域网
外网服务器:把数据共享出去
本地服务器:自己电脑上的
-
3.请求:客户端向服务器端索取数据
-
4.相应:服务器对客户端的请求作出反应,一般都是返回给客户端数据
客户端和服务器其实简称:C/S Client/Server,还有一个B/S b指的是浏览器,用c/s必须要开发一个应用,而b/s只需要装一个浏览器,一般电脑上很多都是b/s
-
URL
想要获取网络上的某个资源,首先要有url
-
什么是URL
URL:Uniform Resource Locator (统一资源定位符)
网络上的每个资源都有对应的唯一的地址-URL
-
URL的基本格式
格式: 协议://主机地址:端口号/路径
协议:不同的协议代表不同的资源获取方式
主机地址:主机的唯一标示(IP地址,域名)
路径:资源在主机中的具体位置
http协议下默认的端口号是80,ip地址计算机的唯一标示,如果写的域名,那么DNS服务器会把域名解析为ip地址
比如:https://www.baidu.com
https://item.jd.com/11084163445.html?jd_pop=b1e74fdb-a4d8-42c5-a24d-526c58ac743b&abt=0
-
URL常用的协议
HTTP(超文本传输协议) FTP(文件传输协议) mailto(邮箱) File(本地) tel:// sms://
-
HTTP 协议简介
-
什么是协议
双方规定好的约定,约定的是请求怎么发和响应怎么发以及url的格式怎么写,为什么很多都是用http协议,因为它简单,即使它不快
-
什么是HTTP协议
1.超文本传输协议(超文本:文字,图片,视频,声音等)
2.浏览器和web服务器通讯时候遵守的约定
3.互联网使用最多的协议
4.提供超文本传输服务
-
请求-响应
-
端口号
1.标示进程(程序)的逻辑地址,不同进程(程序)的标示(解释:比如你想服务器请求数据,服务器也是计算机,那么应该是那个程序来程序来处理请求和返回响应呢,那么端口号的作用就来了)
2.端口取值范围:0-65535
-
网络模型
OSI七层网络模型
1.应用层
2.标示层
3.会话层
4.传输层
5.网络层
6.数据链路层
7.物理层
这是概念上的模型,一般没怎么样,在这个基础上抽象出路 TCP/IP的网络模型
1.应用层:对应osi模型的前三层,为用户提供所需的各种服务,例如:FTP ,TeInet ,DNS ,SMT ,HTTP等
2.传输层:为应用层提供端到端的通信功能,保证了数据包的传输顺序以及数据完整性,两个主要协议:TCP/UDP
3.网络层:解决主机到主机的通信问题,它所保护的协议设计包在整个网络上的逻辑传输,注重重新服务主机一个ip地址来完成对主机的寻址,它还负责数据包在多种网络中的路由,改层有三个主要协议:网际协议(IP),互联网组管理协议(IGMP)和互联网控制报文协议(ICMP)
4.网络接入层:负责监视数据在主机和网络之间的切换(网卡层)
假设客户端和服务器要通讯
比如有个聊天软件,那么服务器要发数据给客户端,比如服务器的聊天的这个软件发个“hello”,那么首先这个应用把hello先传给传输层,那么传输层给hello加一个头,因为传输层本身就是端口对端口的,头里会发一些信息,加入对方的端口号等额外信息为了记住这个数据要发给对方的哪个应用,然后传输层的数据发给我网络层,然后网络层再加个头,里面有ip地址记录下面发给哪个电脑,再继续发给网络接入层,在这里再加一个头,然后转成二进制发出去,接受的那方又反向的去头,最后指定端口的应用拿到hello
-
传输层里的 TCP/IP
1.1 TCP
tcp协议提供的是一种可靠的,通过三次握手来连接的数据传输服务
因为tcp的数据格式比较复杂,所以它的速度而言是比udp慢的
tcp发数据三次握手成功后创立了连接,连接后才能收发数据,发完数据后断开连接,这是tcp慢的一个原因
应用层也提供了一些协议http ftp等等,那么应用层的协议就要选择传输层的协议,比如http在进行网络传输的时候使用的tcp协议
因为tcp收发是需要创立连接的,所以它是一对一的,因为只有再跟你连接上后才能进行传入,而udp它可以指定给某个发,也可以以广播的形式发出去,不管接受的是谁1.2 UDP
udp协议提供的则是不保证数据可靠性(并不是说不可靠,出错几率也很小只是相对于tcp),无连接的数据传输服务
udp发数据是直接发过去的-
Socket
两个计算机通讯的过程,就像两个人打电话一样
socket又称为“套接字”,应用程序通过“套接字”向网络发送数据或者向网络作出应答
网络通信其实就是两个socket之前的通信
数据在两个socket之间通过io传输数据
socket是纯c语言的,是跨平台的
http协议是基于socket的,http协议的底层使用就是socket
-
Socket通信过程
1.创建socket
2.连接服务器
3.发数据给服务器/从服务器接受数据
4.关闭连接
在tip/ip的网络模型中,socket出现在应用层和传输层之间,应用层构成数据,把数据给socket,socket在发给传输层
在本机上搭建一个服务器方法
打开终端:
nc -lk 12345 (12345是端口号)
回车就开了一个服务器