本帖最后由 mashil 于 2017-12-6 15:57 编辑
网络由下往上分为
物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。
通过初步的了解,我知道IP协议对应于网络层,TCP协议对应于传输层,而HTTP协议对应于应用层, · 面向连接,可靠的,基于字节流的 · 建立链接需要三次握手(在吗?在!那我说事情了。)
首先Client端发送连接请求报文,Server段接受连接后回复ACK报文,并为这次连接分配资源。Client端接收到ACK报文后也向Server段发生ACK报文,并分配资源,这样TCP连接就建立了。
Socket(套接字): 封装TCP的接口。网络上的两个程序通过一个双向的通信连接实现数据的交换,这个链接的一端称为一个socke。 · 一个工具,一个接口 · 封装了TCP/IP协议 · 建立长链接的基础
Scoket提供进程通信的端点 各自创建端点 套接字的连接工程 服务器监听(时时监听) --》 客户端请求(客户端的套接字提出连接请求)--》 连接确认(接收到客户端 套接字,响应请求,建立连接)
HTTP 应用层协议: · 比TPC更高级 · 短链接,无连接,无状态,引入cookie · Header+Body组成 1. 客户端通过TCP/IP协议建立到服务器的TCP连接 2. 客户端向服务器发送HTTP协议请求 3. 服务器向客户端发送HTTP协议应答包 4. 断开连接。客户端渲染HTML文档 (通过在浏览器输入域名在DNS解析出对应的服务器IP,客户端向服务器IP发送请求,服务端接收并响应请求,客户端显示数据)
WebServer: 产品:Apache/Nginx Web服务器可以解析(handles)HTTP协议。当Web服务器接收到一个HTTP请求(request),会返回一个HTTP响应(response),例如送回一个HTML页面。为了处理一个请求(request),Web服务器可以响应(response)一个静态页面或图片,进行页面跳转(redirect),或者把动态响应(dynamic response)的产生委托(delegate)给一些其它的程序例如PHP脚本,这些服务器端(server-side)的程序通常产生一个HTML的响应(response)来让浏览器可以浏览。
多进程: 系统进程 用户进程 并发执行(多任务操作进程) 性能更好
WebSocket 应用层协议(HTML5的新协议): · 一个应用层协议 · 长链接 · 主流即使通讯协议
长链接:客户端第一次发起时建立,关闭客户端软件后断开。期间多次发送请求和相应,但是链接是不会断开的 事件机制:监听用户的行为,触发事件 轮询机制:死循环,伪长链接,while(true)不断发起tcp请求 后台服务:Apache,mysql等服务 |