【后端面经-计算机基础】HTTP和TCP的区别

这篇具有很好参考价值的文章主要介绍了【后端面经-计算机基础】HTTP和TCP的区别。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

【后端面经-计算机基础】HTTP和TCP的区别

目录
  • 【后端面经-计算机基础】HTTP和TCP的区别
    • 1. OSI七层模型和相关协议
    • 2. TCP协议
      • 2.1 特点:
      • 2.2 报文格式
      • 2.3 三次握手和四次挥手
    • 3. HTTP协议
      • 3.1 特点
      • 3.2 报文格式
      • 3.2 https和http
    • 4. HTTP vs TCP
    • 5. 面试模拟
    • 参考资料

1. OSI七层模型和相关协议

在计算机网络的学习中,OSI七层结构是一个很重要的概念。
七层模型从上到下如下所示:

  • 应用层:负责应用之间的通信,处理请求和响应的具体格式
  • 表示层:对于数据格式进行处理
  • 会话层:负责建立和断开通信连接,
  • 传输层:负责建立端口之间的连接,规范数据传输
  • 网络层:负责主机之间的传输和寻路
  • 数据链路层:负责传输数据帧,进行差错检测
  • 物理层:负责将数据和电信号进行转化

OSI七层模型的每一层有对应的协议和规范,如图所示:

2. TCP协议

TCP(Transmission Control Protocol)是传输控制协议,是一种面向连接的、可靠的、基于字节流的传输层通信协议。

2.1 特点:

TCP是面向连接、可靠、基于字节流的传输协议。
传输层的另一个协议是UDP(User Datagram Protocol),
UDP是面向无连接、不可靠、基于数据报的传输协议。
TCP和UDP的区别如下表所示:

2.2 报文格式

TCP协议的报文格式如图所示:

对各字段的解释如下表所示:

2.3 三次握手和四次挥手

TCP的连接建立和释放是一个很重要的过程,其实重点在于三点:

  • 对连接建立和释放需要多次确认的理解
  • 相关标志位的数值
  • 端到端主机的状态改变

各位可以参考如下博客学习:
“三次握手,四次挥手”你真的懂吗?

3. HTTP协议

HTTP(HyperText Transfer Protocol)是超文本传输协议,是基于TCP协议的一个应用层协议。

3.1 特点

  • 短连接:基于TCP面向连接的特性,每次请求都需要建立连接,请求结束后断开连接。想要保持长连接,可在连接有效期内定期发送请求。
  • 无状态:由于是短连接,请求响应之后直接断开连接,因此不会进行状态存储,下次连接需要重新输入数据信息。
  • 通信使用明文:HTTP协议的通信内容都是明文,不加密,因此不安全。

http的一次连接过程如下:

  • 客户端发送请求,连接建立;
  • 服务端响应请求,返回数据;
  • 连接断开

3.2 报文格式

  1. 请求报文
    简单来说,请求报文分为头部(header)和实体(body),两者之间由一行空格相连,其中头部包含请求行和头部字段。报文格式如下图所示:

其中,请求行部分可以细分为如下三个部分:

  • 方法字段(Method)包括常见的GETPOST,如下是对常见方法的介绍:

  • URL字段指出了请求的目标地址。

  • 版本字段(Version)指出了HTTP协议的版本,常见的有1.01.12.0,如下是对http各个版本的解释:

如下是一个请求行的实例:

GET /index.html HTTP/1.1

  1. 响应报文
    和请求报文类似,响应报文也分为头部和实体,两者之间由一行空格相连,其中头部包含状态行和头部字段。报文格式如下图所示:

其中,状态行部分可以细分为如下三个部分:

  • 版本号(Version)在请求报文的介绍中提到过;

  • 状态码(Status Code)指出了请求的处理结果,常见的有200404500,如下是常见状态码和其含义:

    更详细的信息可参考此篇博客

  • 原因字段(Reason Phrase)是对状态码的简单解释。

如下是一个状态行的实例:

HTTP/1.1 200 OK

3.2 https和http

HTTP: 超文本传输协议,是一种通信协议,用于从WWW服务器传输超文本到本地浏览器的传送协议。
HTTPS: 是一种通过计算机网络进行安全通信的传输协议。HTTPS经由HTTP进行通信,但利用SSL/TLS来加密数据包。HTTPS开发的主要目的,是提供对网站服务器的身份认证,保护交换数据的隐私与完整性。

4. HTTP vs TCP

两种的区别见下表所示:

5. 面试模拟

Q:HTTP和TCP了解吗?有什么关系?
A:http是应用层的超文本数据传输协议,tcp是传输层的传输控制协议。
http是基于tcp实现的,在请求的时候会建立tcp连接,但是http的连接不同于tcp的长时连接,是一种短连接。

Q:看过TCP结构吗?用什么看的?
A:看过,tcp首部包括20~60字节,包含源端口、目标端口、数据序号、确认序号、首部长度、指示位、滑动窗口大小、校验和、选项字段。
可通过wireshark抓包查看。

Q:HTTPS是什么?ssl属于哪一层协议?
A:https是基于http的超文本传输安全协议,在http的基础上增加了加密通信、身份认证等功能,从而增强传输的安全性。
SSL是传输层和应用层之间的协议。主要负责对数据通信进行加密等安全支撑。文章来源地址https://www.toymoban.com/news/detail-522944.html

参考资料

  1. HTTP协议 与 TCP协议 的区别,作为web程序员必须要懂
  2. 一文走进 HTTP 与 TCP 协议
  3. 面试:HTTP协议与TCP协议的区别和联系
  4. TCP报文格式
  5. HTTP 报文格式简介
  6. HTTP方法
  7. HTTP 状态码
  8. HTTP 与 HTTPS 的区别

到了这里,关于【后端面经-计算机基础】HTTP和TCP的区别的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【计算机基础知识3】IP 地址和子网掩码、DNS、HTTP

    目录 前言 一、IP地址和子网掩码 1. IP地址的概念 2. IP地址的分类 3. 子网掩码的概念 4. 子网掩码的用途 二、域名系统(DNS) 1. DNS的作用 2. 域名解析过程 3. 如何配置和管理域名解析 三、HTTP(超文本传输协议) 1. HTTP的概念和结构 2. 常见的HTTP请求方法 3. HTTP状态码及其含义

    2024年02月09日
    浏览(83)
  • 计算机网络基础-OSI七层模型 和 TCP/IP四层模型的对比

    OSI七层模型: 理论上的网络通信模型 记忆: (物、链、网、输、会、示、用) TCP/IP四层模型: 实际上的网络通信标准 最上层的,也是我们能直接接触到的就是 应用层 ( Application Layer ),我们电脑或手机使用的应用软件都是在应用层实现。那么,当两个不同设备的应用需要

    2024年02月15日
    浏览(39)
  • 【socket】从计算机网络基础到socket编程——Windows && Linux C语言 + Python实现(TCP+UDP)

    简单讲一下基础知识,便于后面代码的理解,建议大概浏览一下这一小节内容。这里讲的只是冰山一角,建议大家学习计算机网络相关知识,推荐几本书: 《计算机网络》(谢希仁) 《计算机网络 自顶向下方法》 《计算机网络技术》 《计算机网络基础及应用》 《Linux C从入

    2024年02月08日
    浏览(60)
  • 计算机通信地址【图解TCP/IP(笔记六)】

    通信传输中,发送端和接收端可以被视为通信主体。它们都能由一个所谓“地址”的信息加以标识出来。当人们使用电话时,电话号码就相当于“地址”。当人们选择写信时,通信地址加上姓名就相当于“地址”。 现实生活当中的“地址”比较容易理解,然而在计算机通信当

    2024年02月13日
    浏览(42)
  • 图像识别与计算机视觉有什么区别?

    图像识别和计算机视觉在很多方面存在差异,这些差异主要体现在以下几个方面: 1. 研究范围 图像识别是计算机视觉领域的一个子集。计算机视觉不仅包括图像识别,还涵盖了更广泛的内容,如场景理解、目标跟踪、分割、识别和解释等。简而言之,计算机视觉是一种更广

    2024年01月16日
    浏览(52)
  • 哈工大计算机网络传输层协议详解之:TCP协议

    哈工大计算机网络课程传输层协议详解之:可靠数据传输的基本原理 哈工大计算机网络课程传输层协议详解之:流水线机制与滑动窗口协议 哈工大计算机网络课程传输层协议详解之:拥塞控制原理剖析 点对点通信 一个发送方、一个接收方 可靠的、按序的字节流 流水线机制

    2024年02月10日
    浏览(46)
  • 计算机基础--计算机存储单位

    计算机中表示文件大小、数据载体的存储容量或进程的数据消耗的信息单位。在计算机内部,信息都是釆用二进制的形式进行存储、运算、处理和传输的。信息存储单位有位、字节和字等几种。各种存储设备存储容量单位有KB、MB、GB和TB等几种。 位(bit):二进制数中的一个

    2024年02月03日
    浏览(83)
  • 机器视觉、图像处理和计算机视觉:概念和区别

    机器视觉、图像处理和计算机视觉:概念和区别nbsp; 机器视觉、图像处理和计算机视觉是相关但有区别的概念。 机器视觉主要应用于工业领域,涉及图像感知、图像处理、控制理论和软硬件的结合,旨在实现高效的运动控制或实时操作。 图像处理是指利用计算机对图像进行

    2024年02月06日
    浏览(47)
  • 计算机与网络发展的7个阶段【图解TCP/IP(笔记一)】

    批处理 所谓批处理,是指事先将用户程序和数据装入卡带或磁带,并由计算机按照一定的顺序读取,使用户所要执行的这些程序和数据能够一并批量得到处理的方式。这种计算机通常放置于专门的计算机管理与运维的计算机中心。用户事先将程序和数据装入卡带或磁带送到这

    2024年02月12日
    浏览(60)
  • 计算机开发岗和算法岗都有些什么区别?

    写在前面 今年的春招刚刚开始,相信小伙伴们已经有了自己的目标。但在这个过程中,有一些同学不知道如何选择适合自己的岗位。今天岛主针对这一现象介绍计算机开发岗和算法岗的区别。 01 什么是开发岗?什么是算法岗? 计算机开发岗主要是指 软件开发 ,开发人员利

    2024年04月28日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包