第一章 了解Web及网络基础

HTTP通常被翻译为超文本传输协议,但是不够严谨,严谨的应该为“超文本转移协议”

TCP/IP协议族

协议中存在各式各样的内容。从电缆的规格到 IP 地址的选定方法、寻找异地用户的方法、双方建立通信的顺 序,以及 Web 页面显示需要处理的步骤,等等。 像这样把与互联网相关联的协议集合起来总称为 TCP/IP。也有说法认为,TCP/IP 是指 TCP 和 IP 这两种协 议。还有一种说法认为,TCP/ IP 是在 IP 协议的通信过程中,使用到的协议族的统称。

TCP/IP的分层管理

TCP/IP 协议族里重要的一点就是分层。TCP/IP 协议族按层次分别分为以下 4 层:应用层、传输层、网络层 和数据链路层。

把 TCP/IP 层次化是有好处的。比如,如果互联网只由一个协议统筹,某个地方需要改变设计时,就必须把所 有部分整体替换掉。而分层之后只需把变动的层替换掉即可。把各层之间的接口部分规划好之后,每个层次 内部的设计就能够自由改动了。

TCP/IP 协议族各层的作用如下。

应用层

应用层决定了向用户提供应用服务时通信的活动。 TCP/IP 协议族内预存了各类通用的应用服务。比如,FTP(File Transfer Protocol,文件传输协议)和 DNS(Domain Name System,域名系统)服务就是其中两类。 HTTP 协议也处于该层。

传输层

传输层对上层应用层,提供处于网络连接中的两台计算机之间的数据传输。 在传输层有两个性质不同的协议:TCP(Transmission Control Protocol,传输控制协议)和 UDP(User Data Protocol,用户数据报协议)。

网络层(又名网络互连层)

网络层用来处理在网络上流动的数据包。数据包是网络传输的最小数据单位。该层规定了通过怎样的路径 (所谓的传输路线)到达对方计算机,并把数据包传送给对方。

与对方计算机之间通过多台计算机或网络设备进行传输时,网络层所起的作用就是在众多的选项内选择一条 传输路线

链路层(又名数据链路层,网络接口层)

用来处理连接网络的硬件部分。包括控制操作系统、硬件的设备驱动、NIC(Network Interface Card,网络 适配器,即网卡),及光纤等物理可见部分(还包括连接器等一切传输媒介)。硬件上的范畴均在链路层的 作用范围之内。

TCP/IP 通信传输流

利用 TCP/IP 协议族进行网络通信时,会通过分层顺序与对方进行通信。发送端从应用层往下走,接收端则往 应用层往上走。

我们用 HTTP 举例来说明,首先作为发送端的客户端在应用层(HTTP 协议)发出一个想看某个 Web 页面的 HTTP 请求。

接着,为了传输方便,在传输层(TCP 协议)把从应用层处收到的数据(HTTP 请求报文)进行分割,并在 各个报文上打上标记序号及端口号后转发给网络层。

在网络层(IP 协议),增加作为通信目的地的 MAC 地址后转发给链路层。这样一来,发往网络的通信请求 就准备齐全了

接收端的服务器在链路层接收到数据,按序往上层发送,一直到应用层。当传输到应用层,才能算真正接收 到由客户端发送过来的 HTTP 请求。

发送端在层与层之间传输数据时,每经过一层时必定会被打上一个该层所属的首部信息。反之,接收端在层 与层传输数据时,每经过一层时会把对应的首部消去。

这种把数据信息包装起来的做法称为封装(encapsulate)

图解HTTP学习记录(一)相关推荐

  1. 迪杰斯特拉算法c++_《算法图解》学习记录7--迪杰斯特拉算法

    本章内容  继续图的讨论,介绍加权图--提高或降低某些边的权重.  介绍狄克斯特拉dijstra算法,让你能够找出加权图中前往X的最短路径.  介绍图中的环,它导致狄克斯特拉算法不管用. 在前一 ...

  2. 图解HTTP学习记录(六)

    HTTP 首部 HTTP报文首部 HTTP请求报文 在请求中,HTTP 报文由方法.URI.HTTP 版本.HTTP 首部字段等部分构成 HTTP响应报文 在响应中,HTTP 报文由 HTTP 版本. ...

  3. (一)Git学习记录(不断更新)

    作为程序员如果你还不知道 Git 和 GitHub,说不过去吧,赶紧来学习一波. 一.认识GitHub Git 是个版本控制系统,说明白点就是进行代码的各种管理,比如你写错代码进行回滚啊.追寻 Bug ...

  4. 《算法图解》学习笔记(七):狄克斯特拉算法(附代码)

    欢迎关注WX公众号:[程序员管小亮] python学习之路 - 从入门到精通到大师 文章目录 欢迎关注WX公众号:[程序员管小亮] [python学习之路 - 从入门到精通到大师](https://b ...

  5. 《算法图解》学习笔记(十一):十种经典的算法与数据结构

    python学习之路 - 从入门到精通到大师 文章目录 [python学习之路 - 从入门到精通到大师](https://blog.csdn.net/TeFuirnever/article/detai ...

  6. Java SE 学习记录——进阶版11

    @学习记录 开始学习Java 遵从同学的指导,从Java se开始学习 黑马的JavaSE零基础入门[网络编程] 第一章 网络编程入门 1.1 软件结构 22-02 软件结构 1.2 网络通信协议 2 ...

  7. 《算法图解》学习笔记(六):图和广度优先搜索(附代码)

    欢迎关注WX公众号:[程序员管小亮] python学习之路 - 从入门到精通到大师 文章目录 欢迎关注WX公众号:[程序员管小亮] [python学习之路 - 从入门到精通到大师](https://b ...

  8. 《算法图解》学习笔记(四):分而治之和快速排序(附代码)

    欢迎关注WX公众号:[程序员管小亮] python学习之路 - 从入门到精通到大师 文章目录 欢迎关注WX公众号:[程序员管小亮] [python学习之路 - 从入门到精通到大师](https://b ...

  9. Netty学习记录-初步认识Netty及I/O模型

    Netty学习记录 Netty简介 Netty特征 Netty架构结构图 Netty如今使用的场景 IO了解 BIO: BIO演变的NIO的过程 NIO: NIO三大核心(重点) NIO非阻塞网络编程 ...

最新文章

  1. 061_html字符实体
  2. 23种设计模式C++源码与UML实现--单例模式中的饿汉模式和懒汉模式
  3. oracle的SCN和Checkpoint_Change#的关系
  4. 理财平台频繁暴雷,羊毛党该要本金还是撸利息?
  5. Git本地仓库管理远程库(GitHub)——clone(下载)、push(提交)、pull(拉取)操作
  6. 分段函数是不是一定初等函数_分段函数的微积分例题选讲
  7. 华为p50出厂自带鸿蒙,真的假的?华为P50系列出厂就预装鸿蒙
  8. 阿里巴巴矢量图标库在线链接使用图标
  9. 雷电模拟器链接服务器未响应,雷电模拟器经常卡顿怎么办?分享多种解决方法...
  10. 电磁学——电磁场与电磁波:麦克斯韦方程组
  11. python截图并识别文字
  12. Rest-assured框架详解
  13. 鲁大师服务器cpu性能排行,鲁大师PC处理器性能排行:AMD撕裂者跑分碾压英特尔, i9 7980XE屈居第二!...
  14. NFS服务器工作原理及权限设置
  15. 2021-09-07 照书码——_——
  16. amigo幸运字符什么意思_做个爬虫比你想象中简单!爬虫是什么?怎么做?
  17. 京东程序员回应“被猝死”:程序员该如何保护自己的健康?
  18. 2016年3月23日日本本州岛之旅
  19. C#DataSet处理数据
  20. Model Compression and Hardware Acceleration for Neural Networks A Comprehensive Survey

热门文章

  1. haproxy负载均衡_基于mycat+haproxy+keepalived搭建mysql数据库高可用负载均衡
  2. docker 启动容器_crontab入门二:定时启动docker容器并启动容器内部脚本
  3. linux 内核升级 网络 不能上网,Deepin Linux 无法上网
  4. 集合添加数据类型出现:unhashable type: ‘list‘
  5. vim 的substitute
  6. linux下统计所有py文件的代码多少行
  7. pd.read_csv时出现unnamed列
  8. 没有找到合适的方法来重写_玻璃片价格太高?你可能没有找到合适的供应商
  9. Linux串口转远程串口,linux虚拟串口及远程访问
  10. 变种 背包问题_动态规划入门——传说中的零一背包问题