计算机网络体系结构分层及HTTP常见问题

计算机网络体系结构分层

一直来对计算机网络协议有些懵懂,今天就来撸一撸这个网络协议
上面图片可以知道:网络协议参考模型分为:

  • osi:参考模型注重“通信协议必要的功能是什么”,基本我们用不到
  • TCP/IP协议:在计算机上实现协议应该开发哪种程序,开发程序可以用的到

那么我们主要关注的就是tcp/ip协议

Tcp/Ip

通常网络是在Tcp/Ip协议组的基础上运作的,Http属于它其中的一个子类
Tcp/Ip协议组分为4层

  • 应用层:提供应用程序网路接口
    • 表示一些协议,如 HTTP, SMTP, FTP, DNS, TELNET等
      • Http协议:超文本传输协议,还有种说法是超文本转移协议,web是建立在http协议上通信的
      • DNS协议 提供通过域名查找ip的方式,或逆向从ip地址反查找域名的服务,提供域名到ip地址之间的 解析服务
      • Ftp:定义文件传输协议
      • Telent:远程登录端口
      • SMTP:邮件传输协议,用于邮件发送
  • 传输层:建立端到端的连接
    • 在传输层有两个性质不同的协议tcp(传输控制协议)和udp(用户数据报协议)
      • tcp:不会丢包,速度比较udp慢,面向字节流(为了方便传输,将大块数据分割以报文段为单位的数据包进行管理),全双工通信:即为:既可作为发送端,也可作为接收端,但只能一对一,每个Tcp连接有且仅有两个端点
      • Tcp套接字:套接字=ip地址+端口号,Tcp连接等于:(套接字1,套接字2)=(IP1:端口号1;IP2:端口号2)
      • Tcp三次握手机制
        在这里插入图片描述发送端发送一个syn标志数据包,接收端回传一个带有syn/ack标志的数据包以示传达确认信息,最后发送端在回传一个带有ack标志的数据包,代表握手结束
      • udp:会丢包,但速度快。没有拥塞控制,始终一恒定速率发送数据,支持一对一,一对多,多对多
  • 网络层:寻址和路由选择
    • 可以简单理解为Ip协议
    • ip协议最终要的就是:ip协议的作用是把各种个数据包发送给对方。而要保证确实传送到对方那里,则需要满足各类条件。其中最重要的就是ip地址和mac地址。ip地址指明了节点被分配到的地址,mac指网卡所属的固定地址
  • 链路层:物理介质访问
    • 以太网,无线Lan

Http协议传输过程

在这里插入图片描述 发送解析的过程
在这里插入图片描述- Http协议如何解决包装数据

  • 传输数据使用传输层协议,那那样就无法识别数据内容,需要引入应用层
  • web服务使用http协议封装http文本信息,然后使用tcp/ip协议将其发送到网络上
    • 消息:http通讯基本单位
    • 请求Reuqest:一个从客户端到服务端的请求信息包括应用于资源的方法、资源的表示符、协议的版本号
    • 响应Response:一个从服务器返回信息包含http版本号,请求状态:成功、失败和文档类型
    • 资源Resource:一个实体包括实体头和实体的本身内容
    • 代理proxy:经常为其他客户机建立请求
  • Http:GET和POST
    -- 看过网上很多关于get和post的解析,个人觉得这种解说比较靠谱
    • Get和Post本质上没有区别都是TCP链接,并无差别,就是Http两种发送请求的方法
    • Get产生一个数据包,Post产生两个数据包
    • Get/post使用方法:
      • Get请求设置method=Get,传送数据放在url中记录,受制于url长度限制(HTTP协议并没有对GET和POST的长度做限制,是浏览器限制了他们传输大小)
      • post可以传输大量数据,一般传文件时候使用,POST需要在请求的body部分包含数据
      • 区别
        +get会被缓存,参数保存在浏览器历史中,post不会被缓存
        +get数据url可见,安全性比较差,post不可见
        +get数据长度有限制(只允许适应ascii字符),post无限制

1.对于GET方式的请求,浏览器会把http header和data一并发送出去,服务器响应200(返回数据);
2.而对于POST,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok(返回数据)
也就是说,GET只需要汽车跑一趟就把货送到了,而POST得跑两趟,第一趟,先去和服务器打个招呼“嗨,我等下要送一批货来,你们打开门迎接我”,然后再回头把货送过去

  1. GET与POST都有自己的语义,不能随便混用。

  2. 据研究,在网络环境好的情况下,发一次包的时间和发两次包的时间差别基本可以无视。而在网络环境差的情况下,两次包的TCP在验证数据包完整性上,有非常大的优点。

  3. 并不是所有浏览器都会在POST中发送两次包,Firefox就只发送一次。
    引用自博客:https://blog.csdn.net/ever_siyan/article/details/87935455?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase
    这里是引用

关键词讲解

DNS域名系统工作原理
  • 解析域名,即www.jiexi.com解析为一个ip地址:如192.1.1.100
解析网址:www.jiexi.com的过程
  • 客户端浏览器通过DNS服务解析域名www.jiexi.com的到它的ip地址如:192.1.1.100,通过ip地址找到服务器的路径,发起一个http会话(应用层)
  • 在客户端添加tcp头,把http会话请求分成报文,添加源和目的端口(传输层)
  • 添加ip头,通过查找路由表确定如何到达服务器(网络层)
  • 添加MAC头,数据包通过链路层发送给服务器(链路层)
IP地址
  • IP地址是32位的二进制数值,用于tcp/ip通讯协议中标记每台计算机的地址
  • Ip地址是指明节点被分配到的地址
ARP地址解析协议
  • 简单来讲就是:更具ip地址获得mac地址
  • mac:,mac地址是指网卡所属的固定地址(网卡的硬件地址),ip地址可以变换,但mac地址基本不会更改
  • arp是一种用以解析地址的协议,根据通信方的ip地址就可以反查出对应的mac地址
交换机、路由器、hub、网关
  • 交换机(又名交换式集线器/Switch)
    • 将MAC地址的数据发送给其对应端口
    • 独享宽带:独享带宽即托管用户独自享用一部分机房带宽资源。它适用于有较大规模的数据流量和访问量,对带宽资源要求保持恒定速率或有特殊要求的网站,如较大规模的ICP服务商、视频音乐网站、以商业运营为目的的网站等。
    • 集线器采用的式共享带宽的工作方式,而交换机是独享带宽。在机器很多或数据量很大时,两者将会有比较明显的
    • 交换机在第二层:数据链路层

在这里插入图片描述

  • 路由器(Router)
    • 它的作用在于连接不同的网段并且找到网络中数据传输最合适的路径 。路由器主要克服了交换机不能路由转发数据包的不足
    • 路由器工作在OSI的第三层(网络层),可以得到更多的协议信息,路由器可以做出更加智能的转发决策。
    • 路由器则是利用不同网络的ID号(即IP地址)来确定数据转发的地址,连接不同的网络。而交换机使用mac地址发送数据
      在这里插入图片描述
  • 集线器(hub)
    • 简单来讲就是把一些机器组成一个局域网
      在这里插入图片描述 - 网关
    • 常指路由器的ip
      在这里插入图片描述
本文章只供学习使用,文中有引用,不做盈利目的,如有侵权,可删引用部分
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值