首页 > 其他分享 >透过TCP/IP看HTTP

透过TCP/IP看HTTP

时间:2023-04-01 10:36:00浏览次数:43  
标签:HTTP IP 报文 SYN TCP 服务端

透过TCP/IP看HTTP

HTTP协议是构建在TCP/IP协议之上的,是TCP/IP协议的一个子集

为了更好的理解HTTP协议,我们先了解一下TCP/IP的相关知识

 

TCP/IP协议族

  TCP/IP协议其实是一系列与互联网相关联的协议集合起来的总称

  分层管理是TCP/IP协议的重要特征

 

TCP/IP协议族分层

  TCP/IP协议族是由一个四层协议组成的系统:这四层分别为:应用层,传输层,网络层和数据链路层

 

 

 

  

应用层:

  应用层一般是我们编写的应用程序,决定了向用户提供的应用服务,应用层看通过系统调用与传输层进行通信,如:FTP,DNS,HTTP等

 

传输层

  传输层通过系统调用向应用层提供处于网络连接中的两台计算机之间的数据传输功能

  在传输层有两个性质不同的协议:TCP和UDP

 

网络层

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

 

链路层

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

 

数据包的封装过程

 

 

HTTP数据传输过程

  发送端发送数据时,数据会从上层传输到下层,且每经过一层都会被打上该层的头部信息,而接收端节后数据时,数据会从下层传输到上层,传输前会把下层的头部信息删除

 

 

 

传输层--TCP三次握手

  使用TCP协议进行通信的双方必须先建立连接,然后才能开始传输数据,为了确保连接双放可靠性,在双方建立连接时,TCP协议采用了三次握手策略

 

 

第一次握手

  客户端发送带有SYN的连接请求报文段,然后进入SYN_SEND状态,等待服务端的确认

 

 第二次握手

  服务端接受到客户端的SYN报文段后,需要发送ACK信息对这个SYN报文段进行确认,同时,还要发送自己的SYN请求信息,服务端会讲上述的信息放到一个报文段(SYN+ACK报文段)中,一并发送给客户端,此时服务端将会进入SYN_RECV状态

 

第三次握手

  客户端接收到服务端的SYN+ACK报文段后,会想服务端发送ACK确认报文段,这个报文段发送完毕后,客户端和服务端都进入ESTABLISHED状态,完成TCP三次握手

 

标签:HTTP,IP,报文,SYN,TCP,服务端
From: https://www.cnblogs.com/yu3304/p/17278175.html

相关文章

  • JavaScript
    大致路径学习JavaScript的路径可以大致分为以下几个方向:HTML和CSS:在学习JavaScript之前,您需要先掌握HTML和CSS基础知识,这是构建网页的基础。JavaScript基础:学习JavaScript的基本语法、变量和数据类型、运算符、条件语句、循环语句等。DOM编程:学习如何通过Ja......
  • asp.net core 开启gzip压缩
    //第一步:配置gzip与br的压缩等级为最优services.Configure<BrotliCompressionProviderOptions>(options=>{options.Level=CompressionLevel.Optimal;});services.Configure<GzipCompressionProvid......
  • 浏览器背后的故事&HTTP的前世今生
    浏览器背后的故事HTTP:超文本传输协议(HTTP)是一种通信协议,它允许将超文本标记语言(HTML)文档从Web服务器传送到客户端的浏览器HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统,它于1990年提出,经过几年的使用与发展,得到不断地完善......
  • centos7获取IP地址的两种方法
    一、centos7获取IP地址的两种方法动态获取IP设置静态IP地址二、动态获取IP(不推荐使用)1、使用ipaddr命令查看查看网卡名和是否有网络,获知网卡名为ens33。2、输入vi/etc/sysconfig/network-scripts/ifcfg-ens33,修改ifcfg-ens33配置文件。BOOTPROTO=dhcpONBOOT=yes3......
  • ubunut apache2下配置和https重定向
    apache2的目录文件详解Apache在启动的时候自动读取文件配置信息apache2引用到以下文件;#包含动态模块的配置include/etc/apache2/mods-enabled/*.loadinclude/etc/apache2/mods-enabled/*.conf#包含用户自己的配置include/etc/apache2/httpd.conf#包含端口监听的配置incl......
  • 渡一教育_Java每日一练:建立Statement的作用是什么、前端Console.log( Boolean(‘‘))
    系列文章目录文章目录系列文章目录题目1java部分建立Statement的作用是什么(答案在最后公布)题目1-答案==解析====答案==题目2前端js部分==答案==题目3前端js部分如下代码输出的是什么答案和解析如下==解析==题目4如果希望1监听TCP端口为9000,服务端应该怎样创建socket题目答......
  • SripingBoot 启程
    微服务论文(软实力)微服务(Microservices)——MartinFlower-船长&CAP-博客园(cnblogs.com)SpringBoot官方学习文档:https://spring.io/projects/spring-boot1、SpringSpring是一个开源框架,2003年兴起的一个轻量级的Java开发框架,作者:RodJohnson。Spring是为了解决企业级......
  • HDU 3328 Flipper 栈的应用
    FlipperTimeLimit:2000/1000MS(Java/Others)    MemoryLimit:32768/32768K(Java/Others)TotalSubmission(s):521    AcceptedSubmission(s):334ProblemDescriptionLittleBobbyRoberts(sonofBigBob,ofProblemG)playsthissolitairememory......
  • NIOS控制LCD16207 IP核
    NIOS控制LCD16207IP核在Quartus中集成了一个qsys工具,用于搭建sopc系统。qsys中提供了一个LCD16207的ip核,该ip核可以驱动LCD1602,在bsp设置中选择lcd16207为标准输出,即可通过printf()函数将字符输出到LCD上。查阅官方手册《EmbeddedPeripheralsIPUserGuide》,手册中说道:TheL......
  • pdf和ppt页数和xlsxStyle jszip3.0兼容
      asynccountPptxSlides(file){   constzip=newJSZip()   constzipFile=awaitzip.loadAsync(file)   constpresentationEntry=Object.values(zipFile.files).find(file=>file.name==='ppt/presentation.xml')   if(!present......