当前位置: 首页 > 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 库&…...

用aardio的customPlus库,5分钟搞定一个带图标和交互的现代化菜单界面

用aardio的customPlus库打造现代化菜单界面的实战指南 在桌面应用开发领域&#xff0c;界面美观度和交互体验直接影响用户的第一印象。aardio作为一款轻量级的Windows桌面应用开发工具&#xff0c;通过customPlus库的加持&#xff0c;开发者可以轻松实现媲美主流商业软件的视觉…...

智能会议管理系统EasyDSS如何开启智能会议协作新时代

随着企业数字化转型进入深水区&#xff0c;传统视频会议系统已无法满足组织对高效、智能、一体化协作的高阶需求。EasyDSS私有化视频会议系统&#xff0c;跳出单一会议工具的局限&#xff0c;以AI技术深度融合与全生命周期视频能力为核心&#xff0c;打造集实时会议、高清直播、…...

AI应用开发入门必看!手把手教你“先进去,再补课”

文章建议想入行AI应用开发的人不要被招聘要求吓退&#xff0c;可以“先进去&#xff0c;再补课”。提供了工具与文档、学习平台以及求职与资源等建议&#xff0c;帮助初学者快速入门。推荐使用LangChain/LlamaIndex、FastAPI、Docker等工具&#xff0c;并通过DeepLearning.AI、…...

如何优化深分页场景下的回表代价_延迟关联与主键游标分页

OFFSET 越大查询越慢&#xff0c;因MySQL需扫描并丢弃前NM行&#xff0c;深分页时即使走索引也要回表读取百万级主键再判断条件&#xff0c;本质是“假走索引、真全扫”。为什么 OFFSET 越大&#xff0c;查询越慢&#xff1f;MySQL 的 OFFSET 不是跳过前 N 行再取数据&#xff…...

深入解析GMGridView:5种手势交互的完整实现原理

深入解析GMGridView&#xff1a;5种手势交互的完整实现原理 【免费下载链接】GMGridView A performant Grid-View for iOS (iPhone/iPad) that allows sorting of views with gestures (the user can move the items with his finger to sort them) and pinching/rotating/pann…...

ARM平台视觉SLAM实战:用树莓派4+USB摄像头低成本复现ORB-SLAM3

ARM平台视觉SLAM实战&#xff1a;用树莓派4USB摄像头低成本复现ORB-SLAM3 当谈到SLAM&#xff08;同步定位与地图构建&#xff09;技术时&#xff0c;大多数人首先想到的是昂贵的激光雷达、专业级IMU和高性能计算设备。然而&#xff0c;对于教育工作者、技术爱好者和初创团队来…...

BBDown终极指南:3分钟学会B站视频下载的完整教程

BBDown终极指南&#xff1a;3分钟学会B站视频下载的完整教程 【免费下载链接】BBDown Bilibili Downloader. 一个命令行式哔哩哔哩下载器. 项目地址: https://gitcode.com/gh_mirrors/bb/BBDown BBDown是一款免费开源的Bilibili视频下载工具&#xff0c;它能让你轻松将B…...

告别实体卡!Android 系统级 SIM 卡模拟:CarrierTestOverride 机制深度解读与自定义配置

Android 系统级 SIM 卡模拟&#xff1a;CarrierTestOverride 机制深度解析与实战指南 在移动设备开发与测试领域&#xff0c;模拟运营商环境一直是个高频需求。传统方式往往依赖实体 SIM 卡或专用测试设备&#xff0c;不仅成本高昂&#xff0c;灵活性也受限。Android 系统内置的…...

Qwen2.5-VL-7B-Instruct惊艳效果:复杂流程图→文字描述→执行建议全链路

Qwen2.5-VL-7B-Instruct惊艳效果&#xff1a;复杂流程图→文字描述→执行建议全链路 1. 模型能力概览 Qwen2.5-VL-7B-Instruct是一款突破性的多模态视觉-语言模型&#xff0c;能够理解图像内容并生成专业级的文字描述和执行建议。这个模型特别擅长处理技术文档中的复杂流程图…...

快速免费解决B站视频无法播放问题:m4s-converter终极指南

快速免费解决B站视频无法播放问题&#xff1a;m4s-converter终极指南 【免费下载链接】m4s-converter 一个跨平台小工具&#xff0c;将bilibili缓存的m4s格式音视频文件合并成mp4 项目地址: https://gitcode.com/gh_mirrors/m4/m4s-converter 你是否曾经在B站缓存了珍贵…...