http、tcp/ip流程

通过Wireshark抓包详解HTTP,TCP/IP工作流程 前言 这篇文章通过现实生活形象比喻,解释各种专业术语与网络模型;在Tomcat服务器的逻辑代码中实际代码断点,结合Wireshark网络抓包,充分直观的了解HTTP,TCP/IP协议工作流程;读完这篇文章,希望你能够: 对于计算机网络有初步的认识和了解,了解一些经典专业术语,如 MTU,三次握手、四次挥手。 对TCP/IP有比较直观的理解,面试再问到的时候,可以从容不迫的解答。 Http请... 阅读详情

1.1、HTTP的概念:

HTTP(Hyper Text Transfer Protocol,超文本传输协议)是一种通信协议,它允许将超文本标记语言(HTML)文档从Web服务器传送到客户端的浏览器。
        它是一个应用层协议,承载于TCP之上。由请求和响应构成,是一个标准的客户端服务器模型

1.2、HTTP的发展历史:

         作为Web文档传输协议的HTTP,它的版本更新十分缓慢,目前只更新了三个版本:
  • HTTP/0.9:  1990年,并未建立标准
  • HTTP/1.0:  1996年5月,
  • HTTP/1.1:  1997年1月,目前主流的HTTP版本

2、网络基础TCP/IP协议

2.1、协议的概念:
        协议是指计算机通信网络中,两台计算机进行通信,所必须遵循的规定或规则。
        计算机网络中有各种各样的协议,比如TCP协议、IP协议、HTTP协议、FTP协议等等,像这样把与互联网相关联的协议集合起来,就成为TCP/IP协议族。

2.2、TCP/IP的分层管理

应用层:负责处理特定的应用程序,如FTP、DNS、HTTP等。
        传输层:对上层应用层提供处于网络连接中两台计算机之间的数据连接。该层有两种协议:TCP和UDP。
        网络层:处理网络上流动的数据报。该层协议有:IP、ICMP、IGMP。
        数据链路层:处理连接网络的硬件部分。包括操作系统、硬件设备驱动、网卡、光纤等。
2.3、TCP/IP通信传输流程


下图说明了数据进入协议栈时的封装过程。

3、IP、TCP、DNS与HTTP的密切关系

3.1、IP协议的概念与作用
                 IP(Internet Protocol),网际协议,位于网络层
                 把各种数据包传送给对方。最重要的两个条件是IP地址和MAC地址(MAC地址基本不会改变,但可以通过软件改变)
                 ARP地址解析协议:根据IP地址查出MAC地址
        3.2、TCP协议的概念与作用
                 TCP(Transmission Control Protocol),传输控制协议,位于传输层。
                 提供可靠的字节流服务,通过三次握手策略
        3.3、TCP协议的三次握手过程

4、HTTP的工作流程

            4.1、整个流程步骤
                 
            4.2、域名解析过程
                 
            4.3、三次握手过程
            4.4、发起HTTP请求
            4.5、响应HTTP请求并得到HTML代码
            4.6、浏览器解析HTML代码
            4.7、浏览器对页面进行渲染呈现给用户

TCP三次握手和四次挥手的全过程


三次握手:

第一次握手:客户端发送syn包(syn=x)到服务器,并进入SYN_SEND状态,等待服务器确认;

第二次握手:服务器收到syn包,必须确认客户的SYN(ack=x+1),同时自己也发送一个SYN包(syn=y),即SYN+ACK包,此时服务器进入SYN_RECV状态;

第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=y+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。

握手过程中传送的包里不包含数据,三次握手完毕后,客户端与服务器才正式开始传送数据。理想状态下,TCP连接一旦建立,在通信双方中的任何一方主动关闭连接之前,TCP 连接都将被一直保持下去。

四次握手

与建立连接的“三次握手”类似,断开一个TCP连接则需要“四次握手”。

第一次挥手:主动关闭方发送一个FIN,用来关闭主动方到被动关闭方的数据传送,也就是主动关闭方告诉被动关闭方:我已经不会再给你发数据了(当然,在fin包之前发送出去的数据,如果没有收到对应的ack确认报文,主动关闭方依然会重发这些数据),但是,此时主动关闭方还可以接受数据。

第二次挥手:被动关闭方收到FIN包后,发送一个ACK给对方,确认序号为收到序号+1(与SYN相同,一个FIN占用一个序号)。
第三次挥手:被动关闭方发送一个FIN,用来关闭被动关闭方到主动关闭方的数据传送,也就是告诉主动关闭方,我的数据也发送完了,不会再给你发数据了。
第四次挥手:主动关闭方收到FIN后,发送一个ACK给被动关闭方,确认序号为收到序号+1,至此,完成四次挥手。

 

在浏览器中输入www.baidu.com后执行的全部过程

1、客户端浏览器通过DNS解析到www.baidu.com的IP地址220.181.27.48,通过这个IP地址找到客户端到服务器的路径。客户端浏览器发起一个HTTP会话到220.161.27.48,然后通过TCP进行封装数据包,输入到网络层。

2、在客户端的传输层,把HTTP会话请求分成报文段,添加源和目的端口,如服务器使用80端口监听客户端的请求,客户端由系统随机选择一个端口如5000,与服务器进行交换,服务器把相应的请求返回给客户端的5000端口。然后使用IP层的IP地址查找目的端。

3、客户端的网络层不用关系应用层或者传输层的东西,主要做的是通过查找路由表确定如何到达服务器,期间可能经过多个路由器,这些都是由路由器来完成的工作,我不作过多的描述,无非就是通过查找路由表决定通过那个路径到达服务器。

4、客户端的链路层,包通过链路层发送到路由器,通过邻居协议查找给定IP地址的MAC地址,然后发送ARP请求查找目的地址,如果得到回应后就可以使用ARP的请求应答交换的IP数据包现在就可以传输了,然后发送IP数据包到达服务器的地址。





HTTP—TCP/IP—SOCKET理解及浅析 一个完整的HTTP请求的过程 此举例为抛砖引玉,引导大家进入思考状态。 当你按输入www.baidu.com ,浏览器接收到这个消息之后,浏览器根据自己的算法识别出你要访问的URL,为您展示出来搜索页面和广告,那么这些经历了哪些过程呢? 大致过程如下: (1)浏览器查询 DNS,获取域名对应的IP地址; 具体过程包括浏览器搜索自身的DNS缓存、搜索操作系统的DNS缓存、读取本地的Host文件和向本地DNS服 务器进行查询等。 (2)浏览器获得域名对应的IP地址以后,浏览器向服务器请求建立链接,发起 阅读详情

相关推荐

图解TCP/IP和HTTP协议:URL请求的完整流程

本文还有配套的精品资源,点击获取 简介:深入探讨TCP/IP、HTTP和URL在网络通信中的作用,解析一个URL请求从输入到处理的详细过程,涵盖DNS解析、TCP连接建立、HTTP请求和响应,以及数据传输和连接关闭等关键步骤。 1. TCP/IP协议基础 1.1 计算机网络与通信协议概述 在数字化时代,计算机网络是信息交换和资源共享的核心。网络中的计算...

weixin_31776191的博客 1226

HTTP协议&TCP/IP协议

阅读第一等级:主题笔记阅读法,提升认知。 导致人与人之间差距的,是每个人对这个世界的不同认知 找到感兴趣的某个领域的100本书籍,把每一本书的重要内容记录下来。在阅读的第一等级建议以实用类书籍,主要论述规则和原理的为主,做笔记时,把规则和核心原理摘抄出来,分类整理入库 阅读第二等级:提问作者阅读法,提升你的洞察能力 一秒能洞察问题本质的人,和怎么也看不清的,命运自然是不一样的 一个人能走多远,取决于他解决问题的能力,人生就是一个解决问题的过程。提问作者阅读法分为三个问题:①作者想解决什么问题,②作

weixin_43991053的博客 5927

集成电路设计学习笔记(二)基于IC617反相器设计之原理图绘制

博主的博客网站 欢迎大家访问! ccbirds.cn ccbirds.github.io 本文主要记录在IC617中原理图的绘制和schematic的使用方法。 新建library 要画设计自己的集成电路,需要建一个自己的库,方便对自己设计文件的管理。 打开library manager,file 下NEW下Library 选择库的保存路径,一般默认即可,并在name中填入自己库的名字。...

ccbirds 7371

计算机网络-HTTP和TCP/IP协议简介

一、HTTP 1.常见名词名称简介 LAN Local Area Network 局域网 WLAN Wireless Local Area Network 无线局域网 WAN Wide Area Network 广域网 MAC Media Access Control 网卡地址 CSMA Carrier Sense Multiple Access

m0_50275872的博客 9487

UniApp实战:5分钟搞定后台持续定位与轨迹实时更新(附完整代码)

本文详细介绍了在UniApp中实现后台持续定位与动态轨迹地图系统的完整方案。针对物流配送、运动健身等场景,文章深入讲解了权限申请、坐标系选择、定位防抖优化、地图轨迹线(polyline)实时绘制等核心步骤,并提供了可复用的完整代码,帮助开发者高效解决App切后台定位停止、轨迹漂移等常见难题。

weixin_29266679的博客 482

生成式深度学习(第二版)-第一章-Conda环境下TensorFlow和Keras的安装和配置

按照书籍中的代码运行提示,需要配置Docker。个人的机器上正好有 conda4.14.0,索性就在本地环境进行配置。

GarryWang1248的博客 398

TCP/IP、HTTP详解

计算机为了联网,就必须规定通信协议 为了将所有类型的计算机都连接起来,规定了全球通用协议。互联网协议簇(Internet Protocol Suite) 互联网上每个计算机有唯一标识的IP地址,IP地址对应的实际上是计算机的网络接口,通常是网卡。 一、IP协议 IP协议负责把数据从一台计算机通过网络发送到另一台计算机。数据被分割成一小块一小块,然后通过IP包发送出去。由于互联网链路复杂,两台计算机之间经常有多条线路,因此,路由器就负责决定如何把一个IP包转发出去。IP包的特点是按块发送,途径多个路由

frozen_memory的博客 1884

Wi-Fi QoS中AIFSN/CWmin/CWmax/TxOP参数是怎样计算的?

802.11e/WMM的EDCA机制通过AIFS、CWmin/CWmax和TxOP三组参数实现业务优先级控制。AIFS决定最短等待时间(AIFS=SIFS+AIFSN×SlotTime),CWmin/CWmax定义退避范围(2^ECW-1),TxOP设置最大占用时长(32µs单位)。默认配置中,语音业务(VO)优先级最高,其AIFSN最小(2)、CW范围最小(3-7)、TxOP适中(1.504ms);视频(VI)次之;普通数据(BE)和后台(BK)优先级最低。调优需根据网络特性调整参数:VoIP可降低AIF

1042484520@qq.com(邮箱) 1744

理解Http请求于TCP/IP的网络传输过程

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结 前言 提示:这里可以添加本文要记录的大概内容: 例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。 提示:以下是本篇文章正文内容,下面案例可供参考 一、pandas是什么? 示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。 二、使用步骤 1.引入库 代码

weixin_43699926的博客 3435

YOLOv8 超参数调优教程! 使用Ray Tune进行高效的超参数调优!

YOLOv8超参数调优教程!😎 使用Ray Tune进行高效的超参数调优!

Coding... 1万+

HTTP是如何使用TCP连接的

之前我写了篇关于 HTTP 的文章,文章中讲述了 HTTP的特点,HTTP 的报文,HTTP 的请求方式等知识,接下来,深入了,我们就关于 HTTP 引发的面试题来进行入手,一起来看一下吧! 1. HTTP 是如何使用 TCP 连接的; 世界上几乎所有的 HTTP 通信都是由 TCP/IP 承载的,TCP/IP 是全球计算机及网络设备都 在使用的一种常用的分组交换网络分层协议集。客户端应用程序可...

懿的博客 4025

京东豆自动领取脚本配置教程

腾讯云/阿里云服务器(Docker环境):全自动跑脚本领京豆(无需本地代理,使用加速源)

AIOT魔法师 854

Android开发中需要理解的TCP/IP协议栈,HTTP协议,以及网络请求的流程。

这个请求包括一个请求方法(如GET、POST等),请求的资源的URI(统一资源标识符),协议版本,可选的请求头和请求体。这一层涉及到硬件设备,如网卡和路由器。2. **建立连接**:浏览器使用TCP协议与服务器建立一个安全层(即TLS/SSL)加密的连接,以确保数据传输的安全性。5. **发送HTTP响应**:服务器处理完请求后,会生成一个HTTP响应,包括状态码、响应头和响应体,发送回客户端。4. **服务器处理请求**:服务器接收到请求后,根据请求的资源进行处理,如查询数据库、执行服务器端脚本等。

Dyan_csdn的博客 701

PoP(Package on Package)封装技术探讨

PoP(Package on Package)封装技术摘要 PoP是一种3D封装技术,通过垂直堆叠已完成封装的器件(如SoC+DRAM)实现高密度集成,典型应用于智能手机等空间受限场景。其核心优势包括:节省主板面积(垂直堆叠)、优化高速信号完整性(短互连路径)、提升供应链灵活性(独立测试与选型)。PoP结构分为底封装(通常为Flip-Chip BGA的SoC)和顶封装(如FBGA存储芯片),通过焊球阵列互连,一次回流焊完成组装。

sinat_15150363的博客 365

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

一文了解HTTP请求流程!Web请求时HTTP与TCP/IP协议间的关系

HTTP 协议,正是建立在 TCP 连接基础之上的,属于应用层协议。>HTTP 是一种允许浏览器向服务器获取资源的协议,是 Web 的基础。

我本可以 1358

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

HTTP(TCP/IP)心得笔记

HTTP 超文本运输协议 通常使用的网络(包括互联网)是在 TCP/IP 协议族的基础上运作的。而 HTTP 属于它内部的一个子集。但是如今的HTTP在这十多年来发展比较慢,几乎没啥变化。(HTTP大学学的有点糊涂,感觉老师不会讲占了一大部分==!嘿嘿) 协议的定义 计算机与网络设备要相互通信,双方就必须基于相同的方法。比如,如何探测到通信目标、由哪一边先发起通信、使用哪种语言进行通信、怎样结束通...

Shallow的博客 410

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Python的Socket知识1:入门(TCP/IP、Socket、HTTP)

理论知识:1、TCP/IP协议    计算机产生后,最先是单机互不兼容模式,随着发展,计算机被一个个的连接起来,形成了一个计算机网路,实现了计算机通信及信息共享,远距离传递信息等工作。互联的过程就需要一个个协议。    协议就是计算机之间通过网络实现通信时事先达成的一种“约定”;这种“约定”使那些由不同厂商的设备,不同CPU及不同操作系统组成的计算机之间,只要遵循相同的协议就可以实现通信。协议可以

乐想屋 1702

TCP/IP 协议栈 5 层模型实战:从 HTTP 请求到以太网帧的完整封装流程解析

本文深入解析TCP/IP协议栈5层模型,详细展示从HTTP请求到以太网帧的完整封装流程。通过分层架构分析,揭示应用层、传输层、网络层、数据链路层和物理层的核心功能与协议交互,帮助读者理解网络通信的底层机制与TCP/IP协议的实际运作方式。

weixin_33834628的博客 473

http

TCP/IP通信的传输流流程 TCP/IP通信的传输流的整个流程: http(客户端)<->TCP<->IP<->网络<->网络<->IP<->TCP<->http(服务端) 这个流成大概是这样的:首先作为发送端的客户端在应用层(http协议)发出一个想看xxx.xxx.com网站的http请求。接着,为了方便传输...

W Y L 2882

面试题常考&必考之--http访问一个页面的全流程(Tcp/IP协议)

分析:-http访问一个页面的全流程,也就好比我们在地址栏输入地址,然后点击回车进行访问 该面试题的主要考点是:计算机网络的TCP/IP协议栈 描述图片:首先应用层提交http请求,传到传输层后由,TCP协议进行封装,报文就是TCP首部和HTTP数据。 再到网络层,IP包进行封装,它在不断分装数据。最后在来到链路层,加了一个跟硬件有关的传输协议(以太网*), 由硬...

a2458353547的博客 904

TCP/IP网路协议

TCP/IP、Http的区别   TPC/IP协议是传输层协议,主要解决数据如何在网络中传输,而HTTP是应用层协议,主要解决如何包装数据。关于TCP/IP和HTTP协议的关系,网络有一段比较容易理解的介绍:“我们在传输数据时,可以只使用(传输层)TCP/IP协议,但是那样的话,如果没有应用层,便无法识别数据内容,如果想要使传输的数据有意义,则必须使用到应用层协议,应用层协议有很多,比如HT

xiao_彩笔的博客 394

TCP/IP与HTTP:底层与上层的完美协作

TCP/IP协议栈是互联网的基础通信架构,包含应用层、传输层、网络层和链路层。HTTP作为应用层协议,完全依赖TCP/IP的下层协议实现数据传输。二者的核心关系是:TCP/IP提供端到端的可靠传输通道(如TCP三次握手),HTTP则定义Web资源传输的规则(如请求/响应格式)。关键区别在于,TCP/IP是通用的通信基础设施,而HTTP是专为Web设计的上层应用协议。HTTP必须通过TCP传输以保证可靠性,无法独立于TCP/IP运行。

Qinti_mm的博客 1558

TCP/IP与HTTP协议:概念、关系与工作原理

TCP/IP与HTTP协议:概念、关系与工作原理

燕鹏 1357

TCP/IP协议与Http协议的区别

TPC/IP协议是传输层协议,主要解决数据如何在网络中传输,而HTTP是应用层协议,主要解决如何包装数据。关于TCP/IP和HTTP协议的关系,网络有一段比较容易理解的介绍:“我们在传输数据时,可以只使用(传输层)TCP/IP协议,但是那样的话,如果没有应用层,便无法识别数据内容,如果想要使传输的数据有意义,则必须使用到应用层协议,应用层协议有很多,比如HTTP、FTP、TELNET等,也可以自...

weixin_45634144的博客 279
上一篇: java设计模式--代理模式(三)
下一篇: CountDownLatch--一组线程完成后其他线程才执行(一)
王小禾
博客等级 码龄11年 80粉丝 291原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值