为什么需要网络协议
在没有网络协议的阶段,公司有自己的标准,而不同公司、网页之间请求响应不能互通,要适应繁多不同的规范,非常的混乱。
当制定了统一的规范之后,每个公司、产品都遵循同样的协议,客户端请求、服务端相应都以一定的标准来进行通信,会更加有秩序。
而目前有很多的网络协议,包括 HTTP
、SMTP
、FTP
、RTMP
、MQTT
等,每一种协议都有其特定的作用,比如机器向电脑请求资源,如图片、字体、文本,常用 HTTP
协议,而机器向电脑上传、修改文件使用 FTP
协议更为合适。
服务器及服务器软件
服务器也是电脑,对于显卡没什么要求,但是对于内存、硬盘、散热等要求很高。
端口号就类似于营业厅的办事窗口,可能有:80、3306、8080 等,每个端口都需要服务器软件 来操作,服务器软件占用端口,监听客户端的请求,当数据发送到给指定的端口时,后端如Java对客户端发送的数据进行处理(如查数据库),再通过同一端口将响应数据传输过去。
服务器的7001端口部署了项目名为 helloWorld 的项目,那么他的地址是这样访问的。协议:// IP地址:端口号/项目名
也许看起来是这样的 http://10.1.2.3:7001/helloWorld
访问本地服务IP地址可使用 127.0.0.1
、localhost
,或者通过 ipconfig
查询 IPv4 地址
跨平台原理
跨平台表示同样一份代码可以分别运行在 windows、mac、Linux 上,C++
和 Java
就使用的不同方式。
C++:使用平台相关的编译器生成对应平台的可执行文件。
Java:编译生成和平台无关的字节码文件(.class),在不同平台安装并使用 JVM解析字节码为机器指令
客户端与服务器请求
如果使用 Java
作为后端的话,他的服务器软件是 Tomcat
,而 Tomcat
也是用 Java
语言编写的, Java
跨平台依赖于 JVM
,客户端与服务器的交互类似于图示。
网络互连模型
OSI 参考模型 是 ISO 公司提出的理论知识,并不具备实际应用。
在真实使用中真正得到认可的是 TCP/IP 协议,学习的时候会把【网络接口层】还原成【数据链路层】和【物理层】,因为这两层关乎通信原理,非常重要。
客户端传输数据到服务器,首先从应用层到物理层,每到一层都要进行包装(加一些数据),通过传输介质(wifi/网线)传递到服务器的物理层。
从服务器的物理层到应用层,每一层都要拆掉一部分内容,最后应用层的数据给 tomcat,处理后再一层层返回给客户端。
以上就是 网络协议的部分概念
, 更多有关 前端
、网络协议
的内容可以参考我其它的博文,持续更新中~