当前位置: 首页 > news >正文

一次完整的 HTTP 请求所经历的步骤

1: DNS 解析(通过访问的域名找出其 IP 地址,递归搜索)。

2: HTTP 请求,当输入一个请求时,建立一个 Socket 连接发起 TCP的 3 次握手。如果是 HTTPS 请求,会略微有不同。

3:

  • 客户端向服务器发送请求命令(一般是 GET 或 POST 请求)。客户端的网络层不用关心应用层或者传输层的东西,主要做的是通过查找路由表确定如何到达服务器,期间可能经过多个路由器,这些都是由路由器来完成的工作,我不作过多的描述,无非就是通过查找路由表决定通过那个路径到达服务器。客户端的链路层,包通过链路层发送到路由器,通过邻居协议查找给定 IP 地址的 MAC 地址,然后发送 ARP 请求查找目的地址,如果得到回应后就可以使用 ARP 的请求应答交换的 IP 数据包现在就可以传输了,然后发送 IP 数据包到达服务器的地址。
  • 客户端发送请求头信息和数据。

4:

  • 服务器发送应答头信息。
  • 服务器向客户端发送数据。

5: 服务器关闭 TCP 连接(4次挥手)。这里是否关闭 TCP 连接,也根据 HTTP Keep-Alive 机制有关。同时,客户端也可以主动发起关闭 TCP 连接。

6: 客户端根据返回的 HTML 、 CSS 、 JS 进行渲染。

在这里插入图片描述

相关文章:

一次完整的 HTTP 请求所经历的步骤

1: DNS 解析(通过访问的域名找出其 IP 地址,递归搜索)。 2: HTTP 请求,当输入一个请求时,建立一个 Socket 连接发起 TCP的 3 次握手。如果是 HTTPS 请求,会略微有不同。 3: 客户端向服务器发…...

OpenGL学习笔记【1】——简介

一、OpenGL概念 OpenGL (Open Graphics Library,译名:开放式图形库开放式图形库) 是一种用于渲染 2D 和 3D 图形的跨语言、跨平台的编程接口(API)。 二、OpenGL跨语言 OpenGL 是一个 C 语言库,因此理解 C 语言(或 C)的…...

C语言课后作业 20 题+考研上机应用题

题目 1: 计算圆的面积 描述: 输入圆的半径,计算并输出圆的面积。 题目 2: 判断一个年份是否为闰年 描述: 输入一个年份,判断并输出该年份是否为闰年。 题目 3: 计算并输出斐波那契数列的前10个数 描述: 输出斐波那…...

macOS上基于httpd-dav搭建WebDav服务

文章目录 配置 Apache httpd修改 ServerName启动验证 httpd 服务启用 Dav 扩展服务配置 配置 httpd 扩展 Dav 服务设置共享目录文件夹配置 DavLockDB 目录创建 WebDAV 访客用户 httpd-dav.conf 主要改动部分BasicDigest共享多个目录 授予 httpd 完全磁盘访问权限验证更新配置重…...

Java-设计模式-单例模式

单例模式 从单例加载的时机区分,有懒汉模式/饥饿模式。 从实现方式区分有双重检查模式,内部类模式/Enum模式/Map模式等。在《Effective Java》中,作者提出利用Enum时实现单例模式的最佳实践。 内容概要 实现单例模式的几个关键点 利用Enu…...

图片html5提供的懒加载与vue-lazyload的区别

原生HTML lazy loading特性 <img src"/images/ocean.jpeg" alt"Ocean" loading"lazy"> loading"lazy" 是HTML5的一个原生特性&#xff0c;它允许浏览器延迟加载图片直至图片距离视口很近或者即将进入视口时。这是一种由浏览器…...

golang 根据某个特定字段对结构体的顺序进行排序

文章目录 方法一方法二方法三 在Go语言中&#xff0c;我们可以使用 sort.Slice() 函数对结构体进行排序。假设你有一个结构体&#xff0c;并且希望根据其中的某个字段进行排序&#xff0c;你可以使用自定义的排序函数。 方法一 下面是一个示例代码&#xff0c;假设有一个包含…...

React Router 参数使用详解

React Router 参数使用详解 React Router 是 React 中用于处理路由的常用库&#xff0c;它提供了丰富的功能来管理应用程序的导航和路由状态。在 React Router 中&#xff0c;我们经常需要使用不同类型的参数来处理路由信息&#xff0c;包括 params 参数、search 参数和 state…...

Vue中$set用法解析

当一个 Vue 实例被创建时&#xff0c;它向 Vue 的响应式系统中加入了其 data 对象中能找到的所有的属性。当这些属性的值发生改变时&#xff0c;视图将会产生“响应”&#xff0c;即匹配更新为新的值&#xff0c;但是遇到以下情况不会进行数据的双向绑定。 当你利用索引直接改…...

进制,码制及其表示范围

一 进制 1 常见的进制及其简写 十进制&#xff08;Dec&#xff09;二进制&#xff08;Binary&#xff09;十六进制&#xff08;Hex&#xff09;八进制&#xff08;Octal&#xff09; 2 进制之间的相互转换 二 码制 1 常用的码制 三 各码制在定点整数时表示的范围 个人推导…...

钡铼技术R40工业4G路由器加速推进农田水利设施智能化

钡铼技术R40工业4G路由器作为一种先进的通信设备&#xff0c;正在被广泛应用于各行各业&#xff0c;其中包括农田水利设施的智能化改造。通过结合钡铼技术R40工业4G路由器&#xff0c;农田水利设施可以实现更高效的管理和运营&#xff0c;提升农田灌溉、排水等工作效率&#xf…...

基于龙芯2k1000 mips架构ddr调试心得(一)

1、基础知识 DDR2的I/O频率是DDR的2倍&#xff0c;也就是266、333、400MHz。 DDR3传输速率介于 800&#xff5e;1600 MT/s之间 DDR4的传输速率目前可达2133&#xff5e;3200 MT/s 2k1000内存&#xff1a;板载2GB DDR3 &#xff0c;可选4GB 使用龙芯芯片最好用他们自己的Bo…...

智能合约语言(eDSL)—— 使用rust实现eDSL的原理

为理解rust变成eDSL的实现原理&#xff0c;我们需要简单了解元编程与宏的概念,元编程被描述成一种计算机程序可以将代码看待成数据的能力&#xff0c;使用元编程技术编写的程序能够像普通程序在运行时更新、替换变量那样操作更新、替换代码。宏在 Rust 语言中是一种功能&#x…...

敏捷开发——elementUI/Vue使用/服务器部署

1. 创建vue项目 2. 安装element-ui组件库 npm i -S element-ui或 npm install element-ui3. 在main.js中导入element-ui组件 import ElementUI from element-ui import element-ui/lib/theme-chalk/index.css Vue.use(ElementUI)element-ui 组件库地址&#xff1a;Element …...

uniapp 使用sqlite时无法读取到db文件中的数据

问题 {“code”:-1404,“message”:“android.database.sqlite.SQLiteException: no such table: user (Sqlite code 1): , while compiling: select * from user, (OS error - 2:No such file or directory),http://ask.dcloud.net.cn/article/282”} at pages/index/index.vu…...

Linux 网络接口管理

为了更深入的了解linux系统&#xff0c;为此做出网络接口管理的知识总结。看起来麻烦&#xff0c;其实一点都不难&#xff0c;相信多看多了解总会是没错的&#xff01;❤️❤️ 一起加油吧&#xff01;✨✨&#x1f389;&#x1f389; 文章目录 前言一、网络配置的文件介绍二、…...

【设计模式】Java 设计模式之模板策略模式(Strategy)

策略模式详解&#xff1a;模式结构、实现与应用场景 一、策略模式概述 策略模式是一种行为设计模式&#xff0c;它使得算法可以独立于使用它的客户端变化。策略模式使得算法可以在运行时切换&#xff0c;从而增强了系统的灵活性和可维护性。在策略模式中&#xff0c;我们定义…...

SpringBoot项目前端Vue访问后端(图片静态资源) 配置

静态资源配置 Configuration public class WebMvcConfig extends WebMvcConfigurationSupport {Value("${file.save-path}")private String fileSavePath;Overrideprotected void addResourceHandlers(ResourceHandlerRegistry registry) {//映射本地文件夹registry…...

colab中数据集保存到drive与取出的方法

from google.colab import drive drive.mount(/content/drive) 一、下载数据集 from datasets import load_dataset max_length 32 # Maximum length of the captions in tokens coco_dataset_ratio 50 # 50% of the COCO2014 dataset# Load the COCO2014 dataset for tr…...

React 应该如何学习?

学习 React 是现代 Web 前端开发中的重要一步&#xff0c;因为它是一个流行且强大的 JavaScript 库&#xff0c;用于构建用户界面。React 的学习过程需要掌握一系列的概念、技术和最佳实践。 1. 基础知识 1.1 HTML、CSS 和 JavaScript React 本质上是一个 JavaScript 库&…...

Canal - 数据同步

一、简介 1、介绍 Canal 是用 Java 开发的基于数据库增量日志解析&#xff0c;提供增量数据订阅&消费的中间件。 目前Canal 主要支持了MySQL的Binlog解析&#xff0c;解析完成后利用Canal Client来处理获得相关数据。&#xff08;数据库同步需要阿里的Otter中间件&#xf…...

梯度增强物理信息神经网络 (gPINN)求解矩形薄板力学正反问题(Python代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…...

LED与蜂鸣器(预习)

然后我们来看一下LED和蜂鸣器的硬件电路。左边两个图是使用STM32的GPIO口驱动LED的电路。上面的是低电平驱动。下面的是高电平驱动。这两种驱动方式应该如何选择呢&#xff1f;这就要看lO口高低电平的驱动能力如何。GPIO在推挽输出的模式下&#xff0c;高低电平均有比较强的驱动…...

使用 Keepalived 实现高可用

在当今互联网服务中&#xff0c;高可用性是保障业务连续性的关键。无论是电商平台、金融系统还是在线服务&#xff0c;任何短暂的中断都可能造成巨大损失。Keepalived作为一款轻量级的高可用解决方案&#xff0c;通过虚拟IP&#xff08;VIP&#xff09;和健康检查机制&#xff…...

风险管理化技术风险预警与应急预案

风险管理化技术风险预警与应急预案&#xff1a;构建安全防线 在数字化与智能化快速发展的今天&#xff0c;技术风险已成为企业运营和项目管理中的关键挑战。无论是数据泄露、系统故障&#xff0c;还是网络攻击&#xff0c;技术风险的突发性和破坏性都可能带来巨大损失。风险管…...

STATA长面板数据分析实战:从数据导入到模型估计的完整流程

1. 面板数据基础与STATA环境准备 面板数据就像一张巨大的Excel表格&#xff0c;行是不同个体&#xff08;比如各省份&#xff09;&#xff0c;列是不同时间点&#xff08;比如各年份&#xff09;&#xff0c;每个单元格里记录着具体的观测值。我刚开始接触时总把它和时间序列搞…...

ODF配线架安装全流程实录:72芯高密度布线+光纤熔接避雷手册

ODF配线架高密度部署实战指南&#xff1a;72芯光纤熔接与布线工艺深度解析 在电信机房的基础设施建设中&#xff0c;ODF配线架作为光缆网络的核心枢纽&#xff0c;其安装质量直接影响着整个通信系统的稳定性和可维护性。面对72芯高密度光纤的布线挑战&#xff0c;工程师需要掌握…...

LeetCode 1024题保姆级攻略:用Python搞定视频拼接,快速排序+贪心算法实战解析

LeetCode 1024题保姆级攻略&#xff1a;用Python搞定视频拼接&#xff0c;快速排序贪心算法实战解析 最近在刷LeetCode时遇到一道很有意思的题目——1024.视频拼接。这道题乍看简单&#xff0c;实则暗藏玄机&#xff0c;需要巧妙结合快速排序和贪心算法才能高效解决。作为算法爱…...

从Element Plus到Naive UI:Vue3管理后台左侧菜单的另一种实现思路与迁移指南

从Element Plus到Naive UI&#xff1a;Vue3管理后台左侧菜单的深度迁移实践 在Vue3生态中构建管理后台时&#xff0c;左侧菜单作为核心导航组件&#xff0c;其实现方案直接影响开发效率和用户体验。Element Plus作为老牌UI库固然成熟稳定&#xff0c;但当我们面临更高阶的定制…...

超越心跳包:5种防止SSH断连的奇技淫巧,从tmux到Mosh全攻略

超越心跳包&#xff1a;5种防止SSH断连的奇技淫巧&#xff0c;从tmux到Mosh全攻略 每次跨国视频会议卡成PPT时&#xff0c;我总想起那些年在哈萨克斯坦油田调试设备的经历——卫星网络延迟高达800ms&#xff0c;SSH连接平均存活时间不超过3分钟。传统的心跳包配置在这种极端环境…...