黑马程序员技术交流社区

标题: 【广州校区】解析TCP\HTTP\SOCKE\WEBSOCKET等概念 [打印本页]

作者: mashil    时间: 2017-12-6 15:42
标题: 【广州校区】解析TCP\HTTP\SOCKE\WEBSOCKET等概念
本帖最后由 mashil 于 2017-12-6 15:57 编辑

网络由下往上分为
  物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。
  通过初步的了解,我知道IP协议对应于网络层,TCP协议对应于传输层,而HTTP协议对应于应用层,
TCP 传输层通信协议:
·      面向连接,可靠的,基于字节流的
·      建立链接需要三次握手(在吗?在!那我说事情了。)

首先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等服务

d74576e61c520684ffa59e07b38eda80.png (60.11 KB, 下载次数: 31)

d74576e61c520684ffa59e07b38eda80.png





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2