记一次简单的HTTP请求

一次HTTP请求的完整过程 1.域名解析(DNS)(Domain name resolution) 依次进行以下步骤,直到成功命中 浏览器检查自身的DNS缓存,看这个域名有们没有对应的IP地址 搜索操作系统自身的DNS缓存(可以在命令行下使用 ipconfig /displaydns 查看)。如果找到且没有过期则成功 尝试读取位于C:\Windows\System32\drivers\etc下的hosts文件,如果找到对应的IP 地址则解析成功 请求本地域名服务器(LDNS)来解析这个域名,这台服务器一般在你的城市的某个 阅读详情

一 概述

        一次简单的HTTP请求的简单分析:

  1.         浏览器从地址栏的输入中获得服务器的 IP 地址和端口号;
  2.         浏览器用 TCP 的三次握手与服务器建立连接;
  3.         浏览器向服务器发送拼好的报文;
  4.         服务器收到报文后处理请求,同样拼好报文再发给浏览器;
  5.         浏览器解析报文,渲染输出页面。

二 DNS与CDN

        假设你要访问的是 Apple 网站,显然你是不知道它的真实 IP 地址的,在浏览器里只能使用域名“www.apple.com”访问,那么接下来要做的必然是域名解析。这就要用 DNS 协议开始从操作系统、本地 DNS、根 DNS、顶级 DNS、权威 DNS 的层层解析,当然这中间有缓存,可能不会费太多时间就能拿到结果。

        别忘了互联网上还有另外一个重要的角色 CDN,它也会在 DNS 的解析过程中“插上一脚”。DNS 解析可能会给出 CDN 服务器的 IP 地址,这样你拿到的就会是 CDN 服务器而不是目标网站的实际地址。

        因为 CDN 会缓存网站的大部分资源,比如图片、CSS 样式表,所以有的 HTTP 请求就不需要再发到 Apple,CDN 就可以直接响应你的请求,把数据发给你。

        由 PHP、Java 等后台服务动态生成的页面属于“动态资源”,CDN 无法缓存,只能从目标网站获取。于是你发出的 HTTP 请求就要开始在互联网上的“漫长跋涉”,经过无数的路由器、网关、代理,最后到达目的地。

        注:由于Chrome浏览器会缓存之前访问过的网站,所以当你再次访问"127.0.0.1"的时候它可能会直接从本地缓存而不是服务器获取数据,这样就无法用wireshark获取网络流量,我们可以通过Chrome的开发这工具或者设置来清除相关的缓存。

详解一次完整的HTTP请求处理 详解一次完整的HTTP请求处理一次完整的HTTP请求处理过程HTTP 服务通信过程接收请求的模型处理请求请求报文1、请求行2、请求头部3、请求数据访问资源构建响应报文响应实体URL重定向MIME类型响应报文格式发送响应报文记录日志请求方法介绍GETHEADPOSTPUTDELETECONNECTOPTIONSTRACE关于HTTP请求GET和POST的区别提交方式传输数据的大小安全性 一次完整的H... 阅读详情

相关推荐

QT 简单的http的post请求

查询请求 QByteArray query(QJsonObject jsonContent) { QByteArray queryErrorResult ;queryErrorResult.clear(); //设置超时处理定时器 QTimer timer; timer.setInterval(10000); // 设置超时时间 10 秒 timer.se...

西门吹雪 4106

【生产问题记录】一次简单的 Http 请求异常处理 (请求的 url 太长, Nginx 直接返回 400, 导致请求服务异常)

服务 A 的请求先经过 Nginx, 再由 Nginx 转发到 B。而异常的用户的请求到了 Nginx, Nginx 直接返回了 400, 从而导致用户请求异常。通过查询资料, Nginx 报 400 的场景如下request_uri 过长超过 nginx 配置大小cookie 或者 header 过大超过 nginx 配置大小空 HOST 头content_length 和 body 长度不一致我遇到的情况就是第一种。

LCN29的博客 2679

如何让一次http请求多次响应呢

其实http请求也是tcp长连接,只不过一般情况下我们返回一次后框架会自动关闭连接,接下来看这个例子。 @GetMapping("get") public void test(HttpServletResponse response) throws IOException, InterruptedException { response.setChar...

weixin_36666151的博客 1万+

一个简单的http请求

public String sendMonitor(String url, String param) { PrintWriter out = null; BufferedReader in = null; String result = ""; try { URL realUrl = new URL(url); // 打开和URL之间的连接 HttpURLCo

糖糖糖糖糖先森 1600

14、方法论 - 自顶向下与自底向上的结合

本文探讨了如何将自顶向下的规范驱动方法与自底向上的组件构建方法相结合,以形成更加全面的编程理论。通过引入代数法则,简化逻辑关系、提高代码可读性并支持形式化验证,结合实际案例(如智能家居控制系统)展示了如何在设计和实现阶段确保系统的正确性和可靠性。文章还讨论了工具支持的重要性,并提出了未来发展的方向。

lstm7chronicler的博客 176

【Qwen2微调实战】LLaMA-Factory框架对Qwen2-7B模型的微调实践

在人工智能的浪潮中,大型语言模型(LLMs)正逐渐成为研究和应用的热点。它们在自然语言处理(NLP)的各个领域,如文本生成、翻译、问答等任务中展现出了卓越的能力。Qwen2-7B模型,作为该领域的佼佼者,不仅因其庞大的参数量和强大的表示能力受到关注,更因其在微调后能够更好地适应特定任务而备受关注。本文将详细介绍如何利用LLaMA-Factory这一高效的微调框架对Qwen2-7B进行微调,以期达到提升模型在特定任务上的表现。

寻道AI,探索AI无限可能! 2万+

一次完整的HTTP请求与响应涉及了哪些知识?

一次完整的HTTP请求与响应涉及了哪些知识? 2017-03-19 Ruheng Android订阅 Android订阅 Android订阅 微信号 androiddingyue 功能介绍 定时发布不一样的Android干货,关注Android技术和交流平台,让我们共同进步。 作者:Ruheng 地址:http://

lizhi0524的博客 3788

YOLOv8集成EMA注意力机制YOLOv8完整教程 将EMA注意力机制集成到YOLOv8框架中

YOLOv8教程这篇文章介绍了如何将EMA(高效多尺度注意力)机制集成到YOLOv8目标检测框架中。YOLOv8 EMA注意力机制通过多尺度特征融合和高效计算,能够提升模型对关键特征的关注能力。文章详细解析了EMA的原理和结构设计,包括其核心组件和前向传播过程。此外,提供了完整的实现指南,包括环境准备、项目结构设置、EMA模块代码实现(包含分组处理、空间注意力计算和特征融合等关键步骤)。YOLOv8 YOLOv8 YOLOv8 YOLOv8 YOLOv8

FJN110的博客 928

HTTP协议、【HTTP请求、响应格式、状态码】及一次HTTP请求的完整过程

HTTP协议简介HTTP协议工作原理和流程浏览器在使用HTTP协议时,用户访问网站的流程HTTP协议的请求格式HTTP协议的响应格式状态码重定向的请求代表当前功能还需要后续操作才能完成。 简介 HTTP协议(Hyper Text Transfer Protocol,超文本传输协议)是一种用于分布式、协作式和超媒体信息系统的应用层协议。为了更快地处理大量事务,确保协议的可伸缩性,HTTP协议被设计成了一种无状态协议,不保留之前一切的请求或响应报文的信息。HTTP协议也是万维网(WWW,World Wide W

u010804417的博客 7794

生成mm grounding dino的onnx模型并在x-anylabeling中使用

X-AnyLabeling 是一款cvhub开发的交互式自动标注工具,其基于AnyLabeling进行构建和二次开发,在此基础上扩展并支持了许多的模型和功能,并借助Segment Anything和YOLO等主流模型提供强大的 AI 支持。其最新版基于grounding dino可以实现开放词汇检测及生成掩码。2024年,MMDet 3.3.0提出了 MM-Grounding-DINO。

blanokvaffy的博客 1733

【DeepSeek应用实践】手把手教程:用 AnythingLLM + Ollama + DeepSeek-R1 搭建本地企业知识库

在众多的技术方案中,我们选择了 AnythingLLM、Ollama 和 DeepSeek-R1 这一组合来搭建本地知识库。Ollama 作为一个轻量级的本地化大语言模型部署工具,支持多种模型,易于安装和使用,能够快速在本地运行强大的语言模型。DeepSeek-R1 是一个专为知识库问答设计的检索增强生成(RAG)模型,它结合了检索和生成的优势,能够快速从知识库中检索相关信息并生成精准答案。而 AnythingLLM 则是一个用户友好的界面工具,可以方便地连接 Ollama 和 DeepSeek-R1

寻道AI,探索AI无限可能! 2571

一次完整的HTTP请求过程

TCP协议工作在传输层,是一种可靠的面向连接的数据流协议。顺序是用一个序列号来保证的。在TCP传送一个数据包时,它会把这个数据包放入重发队列中,同时启动计时器,如果收到了关于这个包的确认信息,便将此数据包从队列中删除,如果在计时器超时的时候仍然没有收到确认信息,则需要重新发送该数据包。另外,TCP通过数据分段中的序列号来保证所有传输的数据可以按照正常的顺序进行重组,从而保证数据传输的完整。上面是一方主动关闭,另一方被动关闭的情况,实际中还会出现同时发起主动关闭的情况,也是通过四次握手。

2401_88326365的博客 1707

基于FPGA的超声成像算法的硬件设计

顶层设计如下图: 1. Verilog的硬件设计型号是 ALTERA 2.数据的输入量已经给出,附上的四个矩阵输入都要实现。 3.波束形成部分要在FPGA上完成,最后的matlab的代码部分只是获取数据后的图像显示 4.不需要动态聚焦,只是完成固定的四个不同输入数据的显示即可 5.不需要实物,但要实现硬件的仿真,要有相应的模块图和结构图,类似如下 具体实现过程和最终结果如下: 定义aperture(孔径)大小————输入量,数据已给出,一共四个规格的ape...

FPGA/MATLAB学习教程/源码/项目合作开发 1万+

http 默认超时时间_记一次网络请求连接超时的事故

点击上方蓝色字关注我们~前言从HTTP请求超时、重试机制、操作系统网络等层面剖析了事故的原因,最终解决业务问题。这里先抛两个问题:1)你遭遇过由于网络连接或请求超时造成的生产事故吗?2)你知道操作系统默认的网络连接超时是多少秒?先思考下,可以将你的答案写在评论区哦。问题背景最近同事出现这么一个问题,简单业务场景:服务A使用HTTP请求服务B接口m。服务A起了一个定时任务Task:从db查...

weixin_39636707的博客 2万+

基于matlab的轴承损伤分析动力学建模仿真

高质量的轴承在正确的使用下,可以使用很长一段时间,如果过早的出现损伤,很可能是因为选型错误,使用不当或润滑不良造成的。因此,在安装轴承时,我们需要记录机器种类,安装部位,使用条件及周围配合。通过研究总结轴承损伤的类型,发生问题时的使用环境,以避免类似情况再次发生。轴承损伤方式按下述图片分类,我们可以图片中显示的主要特征来判断轴承损伤形式。01、压痕碰伤卡入固体异物或冲击造成的表面凹坑及安装是的擦伤◆固体异物侵入◆在倾斜状态下安装◆安装不良造成的撞击,脱落◆卡入剥离片◆改善安装、使用方法。

平时工作较为繁忙,私信消息一般晚上回复,谢谢大家~~ 2667

高通SDX12:ProSLIC Si32185移植调试

高通 SDX12 语音芯片slic 音频驱动 Si32185

不秃头的程序猿Gabriel的博客 2038

一次完整的HTTP请求

一次完整的HTTP请求过程从TCP三次握手建立连接成功后开始,客户端按照指定的格式开始向服务端发送HTTP请求,服务端接收请求后,解析HTTP请求,处理完业务逻辑,最后返回一个HTTP的响应给客户端,HTTP的响应内容同样有标准的格式。无论是什么客户端或者是什么服务端,大家只要按照HTTP的协议标准来实现的话,那么它一定是通用的。 HTTP请求格式 HTTP请求格式主要有四部分组成,分

permike的专栏 1742

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

记一次HTTP返回400的错误

今天在一次访问后台中,服务器总是返回400,通过wireshark抓包显示如下:POST/shsys-web/cc/module/v3/sub/sync?seq=37670&id=0077a33dbbd6a5839713&sn=15414b2300793583&d=aqeGAnlrIzg=HTTP/1.1 Host: 103.255.94.178:8080 Conten...

Something of an idiot 9328

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

一次http请求需要经过哪些步骤?

DNS 解析:将域名转换为 IP 地址。建立 TCP 连接:通过三次握手建立可靠连接。发送 HTTP 请求:客户端构造并发送请求报文。服务器处理请求:服务器解析请求并生成响应。返回 HTTP 响应:服务器发送响应报文给客户端。关闭 TCP 连接:释放或复用连接。客户端渲染或处理:客户端解析并展示响应内容。可选的 HTTPS 加密:通过 TLS/SSL 加密通信。这些步骤共同完成了一次完整的 HTTP 请求-响应过程。

qq_36929638的博客 1222

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

记一次HTTP请求的完整流转 从Tomcat到Spring MVC

Spring boot 一次详细的http请求过程。 我们知道的是spring boot内嵌一个tomcat,这个tomcat负责请求的连接处理,并且将其转化为request和response,然后我们所有的操作都是在处理这个request和response,然后tomcat再通过socket写回给客户端。这里nio模型的中心,也就是tomcat负责事件处理的伪码 public void ru...

u012803274的博客 1820

一次完整的HTTP请求是怎样的

原文章出处:http://blog.youkuaiyun.com/xllily_11/article/details/52872964 超级超级有趣的博主,我想我可能爱上他了。这个宇宙最帅的人,哈哈哈哈 一次完整的HTTP请求过程从TCP三次握手建立连接成功后开始,客户端按照指定的格式开始向服务端发送HTTP请求,服务端接收请求后,解析HTTP请求,处理完业务逻辑,最后返回一个HTTP的响应给客户

Liu_guoer的博客 508

java tcp模拟http请求,记一次使用Socket模拟HTTP请求(示例代码)

直接进入主题。HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议,HTTP是基于TCP/IP通信协议来传递数据。Java中的正好有一个类可以实现TCP的传输与接收,那就是Socket。首先要先起一个SpringBoot项目用于接收HTTP请求,Controll...

weixin_32263265的博客 1069
上一篇: Lock wait timeout exceeded; try restarting transaction
下一篇: 在浏览器里点击页面链接后发生了哪些事情
至学者
博客等级 码龄9年 180粉丝 773原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值