ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

第一章 网络基础知识

2021-04-12 22:33:29  阅读:124  来源: 互联网

标签:HTTP 服务器端 报文 网络 TCP 第一章 请求 基础知识 客户端


网络基础知识

一、OSI开放式互联参考模型

1、物理层

  1. 机械、电子、定时接口通信信道上的原始比特流传输。
  2. 定义物理设备的标准,如网线的类型、光纤的标准或者各种传输介质的传输速率和类型等。
  3. 主要目的是传输比特类。

2、数据链路层

  1. 定义了如何格式化数据用于传输
  2. 定义了如何控制对物理介质的访问
  3. 提供了错误检测和纠正,以保证数据传输的正确性。

3、网络层

  1. 主要作用是将网络地址翻译成对应的物理地址
  2. 定义了如何将数据从发送方路由到接收方
  3. 网络层通过内部的协议调用决定了从节点A到节点B的最优路径
  4. 路由器属于网络层,本层的数据称为数据包,本层使用的是IP协议

4、传输层(最重要)

  1. 解决了主机间的数据传输,解决了数据传输中的各类问题。
  2. 接受上一层的数据,在必要的时候将数据进行分割,并将这些数据交给网络成,以保证这些数据段有效到达对端
  3. 需要重点关注TCP和UDP协议。

5、会话层

  1. 建立和管理不同应用程序的通信

6、表示层

  1. 信息的语法语义以及它们的关联,如加密解密、转换翻译、压缩解压缩等

7、应用层

  1. HTTP协议

二、TCP/IP与OSI的横向对比

OSI七层模型TCP/IP概念模型功能TCP/IP协议族
应用层应用层文件传输、电子邮件、文件服务、虚拟传输TFTP,NTTP,SNMP,FTP,SMTP,DNS,Telnet
表示层数据格式化,代码转换,数据加密没有协议
会话层解除或建立与别的接点的联系没有协议
传输层传输层提供端对端的接口TCP 、UDP
网络层网络层为数据包选择路由IP、ICMP、RIP、OSPF、BCP、ICMP
数据链路层链路层传输有地址的帧以及错误检测的功能SLTP、CSLTP、PPP、ARP、RAPR、MTU
物理层以二进制数据形式在物理媒体上传说数据ISO02110、IEEE802、IEEE802.2

三、TCP协议和UDP协议

1. 传输控制协议TCP的简介

  1. 面向连接的、可靠的、基于字节流的传输层通信协议
  2. 将应用层的数据分割成报文段并发送给目标节点的TCP层
  3. 数据包都有序号,对方收到则发送ACK确认,未收到则重传
  4. 使用校验和来检验数据在传输过程中是否有误

2. TCP的各种标志

  1. URG:紧急指针标志
  2. ACK:确认序号标志
  3. PSH:PUSH标志
  4. RST:充值连接标志
  5. SYN:同步标志,用于建立连接过程
  6. FIN:FINISH标志,用于释放连接

3.TCP三次握手流程

TCP三次握手流程图

  1. 开始前客户端A与服务器端B,处于关闭状态。
  2. 开始时客户端A主动打开连接,服务器端B被动打开连接,同时服务器端B处于LISTEN监听状态。
  3. 客户端A向服务器端B发送连接请求报文,SYN=1,seq=x,同时客户端A进入SYN-SENT同步已发送状态
  4. 服务器端B接收到来自客户端A的请求报文,如果服务器同意连接,则发送确认报文,SYN=1,ACK=1,seq=y,ack=x+1,同时服务器端B进入SYN-RCVD同步已接受状态
  5. 客户端A在接受到来自服务器端B的确认报文后,仍需要向B发送确认报文,此时TCP连接已建立,A进入ESTAB-LISHED(连接已建立状态)
  6. 当服务器接受到确认报文后,也会进入进入ESTAB-LISHED(连接已建立状态),双方就可以进行通信

4.TCP四次挥手流程

TCP四次挥手流程图

  1. 开始前,客户端A与服务器端B处于连接状态
  2. 开始后,客户端A主动发起连接关闭请求,客户端A发送FIN报文,用于关闭客户端A到服务器端B的数据传送,同时客户端A进入FIN-WAIT-1状态
  3. 服务器端B在接受到客户端的FIN报文后,通知应用进程关闭,同时发送一个ACK报文给客户端A,服务器端B进入CLOSE-WAIT状态
  4. 服务器端B在经过一段时间的等待后,向客户端A发送FIN报文,同时关闭服务器端B到客户端A的数据传送,服务器端B进入LAST-ACK状态
  5. 客户端A在接受到FIN报文后,客户端A进入TIME-WAIT状态,同时发送ACK报文给服务器端B,服务器端B进入CLOSED状态
  6. 客户端A在等待2MSL时长后,进入CLOSED状态

5.UDP协议

  1. 面向非连接
  2. 不维护连接状态,支持同时向多个客户端传输相同的消息
  3. 数据包报文只有8个字节,额外的开销比较小
  4. 吞吐量只收限于数据生成速率、传输速率以及机器性能
  5. 尽最大努力交付,不保证可靠交付,不需要维持复杂的连接状态表
  6. 面向报文,不对应用程序提交的报文信息进行拆分或者合并

6.TCP和UDP的区别

性质TCPUDP
面向连接三次握手连接无连接
可靠性握手连接可能丢失
有序性会进行排序无序
速率
量级重量级(20字节)轻量级(8字节)

五、HTTP相关

1. HTTP相关问答

1.1 在浏览器地址栏键入URL后,按下回车之后所经历的流程有哪些

  1. DNS解析,逐层访问各级缓存,解析域名,获取对应的IP地址
  2. 建立TCP连接
  3. 发送HTTP请求
  4. 服务器处理请求病返回HTTP报文
  5. 浏览器解析渲染页面
  6. 连接结束

1.2 HTTP状态码

1.2.1 五种状态类型

  1. 1XX:指示信息–表示请求已接收,继续处理
  2. 2XX:成功–表示请求已被成功接收、理解、接受
  3. 3XX:重定向–要完成请求必须进行更进一步的操作
  4. 4XX:客户端错误–请求有语法错误或者请求无法实现
  5. 5XX:服务器端错误–服务器未能实现合法的请求

1.2.2 常见的状态码

  1. 200 OK:正常返回信息
  2. 400 Bad Request:客户端请求有语法错误,不能被服务器所理解
  3. 401 Unauthorized:请求未经授权,这个状态代码必须和WWW-Authenticate报文域一起使用
  4. 403 Forbidden:服务器收到请求,但是拒绝提供服务
  5. 404 Not Found:请求资源不存在,例如,输入了错误的URL
  6. 500 Internal Server Error:服务器发生了不可预知的错误
  7. 503 Server Unavailable:服务器当前不能处理客户端的请求一段时间后可能恢复正常

六、GET请求和POST请求

  1. HTTP报文层次:GET将请求信息放在了URL里(对于长度有限制),POST放在了报文体重(对于长度没有限制)
  2. 数据库层次:GET符合幂等性和安全性(GET请求是做查询操作),POST不符合(POST请求会往数据库提交数据)
  3. 其他层次:GET可以被缓存、被存储,而POST不可以(POST请求交由WEB服务器处理)

七、Cookie和Session

1. Cookie简介

  1. 是由服务器发个客户端的特殊信息,以文本的形式存放在客户端
  2. 客户端再次请求的时候,会把Cookie回发
  3. 服务器接收到后,回解析Cookie生成与客户端相对应的内容

2.Session简介

  1. 服务器端的机制,在服务器保存的信息
  2. 解析客户端请求并操作Session Id,按需保存状态信息

3. Cookie和Session的区别

  1. Cookie数据存放在客户的浏览器上,Session数据放在服务器上
  2. Session相对于Cookie更安全
  3. 若考虑减轻服务负担的角度,应该使用Cookie

八、HTTP和HTTPS的区别

HTTPHTTPS
TCPSSL或TLS
TCP
IPIP

1. SSL

  1. 为网络通信提供的安全及数据完整性的一种安全协议
  2. 是操作系统对外的API,SSL3.0后更名为TLS
  3. 采用身份验证和数据加密保证网络通信的安全和数据的完整性

2. 加密的方式

  1. 对称加密:加密和解密都使用同一个秘钥
  2. 非对称加密:加密使用的秘钥和解密使用的密钥是不相同的
  3. 哈希算法:将任意长度的信息转换为固定长度的值,算法不可逆
  4. 数字签名:证明某个信息或者文件是某人发出、认同的

3. HTTPS数据传输流程

  1. 浏览器将支持的加密算法信息发送给服务器
  2. 服务器选择一套浏览支持的加密算法,以证书的形式回发给浏览器
  3. 浏览器验证证书合法新,并结合证书公钥加密信息发送给服务器
  4. 服务器使用私钥解密信息,验证哈希,加密相应信息会发浏览器
  5. 浏览器解密响应信息,并对信息进行验真,之后进行加密交互数据

4. 对比HTTP和HTTPS的区别

对比HTTPHTTPS
是否需要CA证书不需要需要
传输方式明文传输密文传输
连接方式80端口443端口
安全性不安全HTTPS=HTTP+加密+认证+完整性保护

九、Socket简介

  1. Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面,对用户来说,一组简单的接口就是全部,让Socket去组织数据,以符合指定的协议。
  2. socket是“open—write/read—close”模式

标签:HTTP,服务器端,报文,网络,TCP,第一章,请求,基础知识,客户端
来源: https://blog.csdn.net/weixin_42290410/article/details/115612286

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有