网络基础 HTTP的通信过程

网络基础知识点总结(笔试面试用) 网络基础 OSI七层网络模型分别是什么样的,以及每层的数据格式 TCP/IP四层模型分别是什么样的,以及每层的数据格式 TCP/IP协议 建立连接的三次握手,关闭连接的四次握手,为什么要这么做 常见的网络协议以及它们分别属于TCP/IP模型的那一层 应用层:HTTP、FTP… 传输层:TCP、UDP 网络层:IP、ICMP、IGMP 链路层:ARP、RARP TCP滑动窗口 (1)滑动窗口机制的原... 阅读详情

基本介绍

在这里插入图片描述

最简单的HTTP通信过程是发生在客户端与服务端之间的。

客户端发送请求,而服务端响应请求,如上图所示。

而客户端发送请求的最重要目的是为了获取服务端上的资源。然而客户端为了获取自己想要的资源就必须告诉服务端资源的位置(URI)。只有告诉服务端资源的位置服务端才能返回给客户端其想要的资源。

所以,客户端不是发送一个请求就可以获取到资源,在发送请求的时候,请求要携带一些数据,例如资源的位置URI,请求服务端的位置等等。

而这些数据就是报文。

报文是客户端和服务端进行数据交互的数据载体

报文的数据结构

用于HTTP协议交互的信息被称为HTTP报文

HTTP报文本身是由多行数据构成的字符串文本

而HTTP报文可以分为两个部分

  1. 报文首部
  2. 报文主体

而在这里,根据HTTP报文的使用目的可以分为以下两种

  1. 请求报文(客户端发送请求的HTTP报文)
  2. 响应报文(服务端响应请求的HTTP报文)

请求报文的结构如下图所示
在这里插入图片描述
而响应报文的结构如下图所示

在这里插入图片描述

注:
首部字段:包含表示请求和响应的各种条件和数学的各类首部。
一般有4种首部:
1. 通用首部
2. 请求首部
3. 响应首部
4. 实体首部

传输过程

HTTP的通信过程中,为了提高传输过程中传输的稳定性和高效性,有以下两种手段来实现传输速度的提升

  1. 压缩传输(内容编码)

    压缩传输是指将传输内容进行压缩,降低内容的字节大小,从而实现传输速率的提升
    由发送方将内容进行编码压缩,然后由接收端根据发送方发送报文的请求头对内容进行解码
    常见的压缩方法如下
    1. gzip
    2. compress
    3. deflate
    4. identity
    
  2. 分块压缩传输

    分块压缩传输是指发送方将要传输的内容进行分块,然后每一块进行压缩,然后一块一块发送给接收端。
    接收端根据发送方发过来的HTTP报文判断该块是属于整体内容的哪一部分,并且判断此时发送方所要发送的内容是否已经结束。
    接收端在介绍块数据的同时,会同时将块数据进行解码,无需等到发送方将数据全部发送过来再解码
    

HTTP的通信传输内容的不同可以分为以下两种

  1. 简单的字符串传输(文本传输)
  2. 多部分对象传输(传输内容含有文件,图片,音频等二进制数据;文本传输+二进制传输)

简单的文本传输只需要将内容变成字符串(或许会添加内容压缩操作)放在HTTP报文中。

而文本传输+二进制传输则需要特殊的实体类型来进行传输

在这里要提一下实体主体和报文主体的区别:
报文:是HTTP通信中的基本单位,由8位组字节流组成,通过HTTP进行传输
实体:作为请求或者响应的有效载荷数据被传输,其内容由实体首部和实体主体组成
HTTP报文的主体用于传输请求或响应的实体主体

而为了能进行文本传输+二进制传输,HTTP根据MINE机制实现了以下多部分对象

  1. multipart/form-data(在web表单文件上传时使用,在web开发中这个比较常用)
  2. multipart/byteranges(状态码206响应报文包含多个范围的内容使用)

在HTTP的通信过程中,可以通过3种机制来决定服务端所要返回的内容

这三种机制分别如下

  1. 服务端驱动协商
服务端根据请求报文的报文头相关字段来判断应该返回给什么类型的资源
相关首部字段如下
1. Accept
2. Accept-Charset
3. Accept-Encoding
4. Accept-Language
5. Content-Language
  1. 客户端驱动协商
在客户端由客户选择自己所想要的资源
例如,在一个网站中,是想要英文版本的还是要中文版本的,则由用户手动切换语言,
然后通过JavaScript将用户所做出的选择发送给服务端,服务端根据请求报文返回相应资源。
然后客户端将收到的内容重新在客户端那边显示
  1. 透明协商
服务端驱动协商 + 客户端驱动协商
Socket与HTTP解析 1.网络基础网络分层:计算机网络分层模型有两种 OSI参考模型 TCP/IP参考模型 网络层:根据IP查找到目的地址的主机 运输层:通过端口把数据发送给目的主机,实现进程间通信 2.端口端口规定有16位,及计算机有2的16次方65536个端口。3.C/S架构定义:即客户端/服务端,软件体系架构作用:利用客户端和服务端的硬件资源,将任务合理的分配到客户端和服务端来实现,降低开销 Soc 阅读详情

相关推荐

(九)网络基础部分

正确回答通过率:87.0%[ 详情 ] 推荐指数: ★★★ 试题难度: 初级Server-side include(服务器端包括)是浏览器向服务器请求您的文档时并入您的文档的一个文件。当访问者浏览器请求含有 include(包括)指令的文档时,服务器处理 include(包括)指令并创建新的文档,在新文档中 include(包括)指令被所包括的文件内容取代。然后服务器将此新文档发送给访问者的浏览器。

jylee的博客 270

http通信过程

一、TCP连接二、浏览器向服务器发送请求命令例如:GET/sample/hello.jsp HTTP/1.1HTTP1.0:客户端每次请求都要建议一次独立的链接,在处理完本次请求后会主动释放链接。HTTP1.1:一次链接可以处理多个请求,请求可以重叠进行。请求命令:GET GET方法是默认的HTTP请求方法,我们日常用GET方法来提交表单数据,然而用GET方法提交的表单数据只经过了简单的编码,同...

waiting666的博客 1万+

2、探索网络基础与互联网协议

本文详细介绍了网络基础和互联网协议的核心概念,包括数据包传输、网络通信的层次结构以及TCP和UDP协议的特点与对比。同时,深入探讨了HTTP协议的工作原理、客户端与服务器的通信模式,以及HTML表单和CGI程序的交互方式。此外,还涉及了网络编程中的安全性和权限限制,特别是Java小程序的相关内容。通过这些知识,为读者理解和开发高效的网络应用程序奠定了基础。

n7o8p的博客 50

HTTP 网络通讯过程

建立TCP连接是依靠三次握手,也就是浏览器主动向服务器发送SYN报文,服务器收到后回应ACK+SYN报文,浏览器再发送ACK报文,完成三次握手,建立TCP连接。与之前的HTTP协议不同的是,HTTP是一种无状态协议,每个请求都是一个独立的事务,不保留状态信息。请求到达服务器后,服务器会解析请求消息,并根据请求方法返回相应的HTTP响应消息给浏览器。在网络包(跨网段)传输过程中,源 IP 和目标 IP 始终是不会变的,一直变化的是 MAC 地址,因为需要 MAC 地址在以太网内进行两个设备之间的包传输。

可可的博客 1758

Fiddler抓包实战:5分钟搞定微信公众号历史消息接口分析(附完整Python代码)

本文详细介绍了如何使用Fiddler抓包工具逆向分析微信公众号历史消息接口,并提供完整的Python代码实现。从环境准备、动态参数捕获到商业级采集系统架构设计,全面解析了突破官方接口限制的技术方案,帮助开发者高效获取公众号文章数据。

tree8的博客 329

WebRTC音频传输实战:从采集到播放的完整链路解析(附RTP包处理细节)

本文深入解析了WebRTC音频传输的完整链路,从麦克风采集、音频处理与编码,到RTP打包、网络发送,再到接收端的NetEQ抗抖动处理与最终播放。文章以Linux PulseAudio为例,详细剖析了线程模型、缓冲区管理及RTP包处理等关键细节,旨在帮助开发者优化实时音频应用的延迟、卡顿与回声问题。

tea88的博客 853

【图解HTTP】三、进程间通信

详解进程间几种通信方式:管道,共享内存与消息队列。

qq_41906009的博客 770

Altera Cyclone4 EP4CE15F17C8核心板硬件设计避坑指南(附AD09工程文件)

本文深入解析Altera Cyclone4 EP4CE15F17C8核心板硬件设计中的关键问题与解决方案,涵盖电源架构优化、信号完整性处理、热设计及生产调试要点。特别提供经过验证的AD09工程文件,帮助开发者规避常见设计陷阱,提升FPGA项目的成功率与可靠性。

weixin_29159441的博客 298

Http的基本通信过程

HTTP协议简介 HTTP的全称是HypertextTransfer Protocol,超文本传输协议 规定客户端和服务器之间的数据传输格式 让客户端和服务器能有效地进行数据沟通 HTTP协议的特点(为什么选择HTTP) 简单快速 1.因为HTTP协议简单,所以HTTP服务器的程序规模小,因而通信速度很快 2.灵活 3.HTTP允许传输各种各样的数据 4.HTTP 0.9和1

Vito_Jianxue的博客 3822

基于MicroPython的ESP32与微信小程序MQTT通信实战

本文详细介绍了基于MicroPython的ESP32与微信小程序通过MQTT协议实现远程控制的完整实战方案。项目利用巴法云作为免费MQTT服务器,提供了从设备端编程、小程序开发到通信调试的全流程指南,帮助开发者快速构建低成本、易上手的物联网应用,如智能开关、传感器监控等。

week9的博客 634

YOLOv8-COCO指标转换

本文介绍了将YOLO格式数据集转换为COCO格式并评估模型性能的完整流程。首先需将YOLO格式的标注数据转换为COCO格式,通过修改classes、image_path等参数适配不同数据集。然后使用YOLO模型对验证集进行预测并保存结果为JSON格式。最后通过比较预测结果和转换后的COCO标注文件,使用COCO官方评估指标和TIDE工具进行性能分析,生成包含AP、AR等指标的报告及错误分析图表。整个过程实现了从数据准备到模型评估的完整闭环,为计算机视觉任务提供标准化的性能评估方案。

FJN110的博客 403

防火墙与网络安全

总结来说,为了发动跨站脚本攻击,攻击者需要用户输入数据可用于动态生成页面,因为这提供了一个机会让攻击者将恶意脚本注入到页面中,并在用户访问页面时执行这些脚本。攻击者可以利用这个功能将恶意脚本注入到动态生成的页面中。用户内部私用网络使用的私有IP地址不能直接访问公用网络,即外部因特网,所以需要利用网络地址转换技术,将两个网络进行互转,利用转发表将私有网络与公有网络一一对应。主要是为了防止外部网络的攻击,防火墙作为外部网络数据进入内部网络数据的唯一接口,能够根据一定的访问控制策略,对出入网络的信息流进行控制。

WBMcurry的博客 1249

基于投影法实现扫描文件的光学字符分割——Matlab实现

投影法是指将原图像沿着某个特定的方向进行投影,得到投影线上的像素点的个数或像素值总和,从而可以得到该方向上物体的轮廓信息。对于字符分割,我们可以将图像进行水平和垂直两个方向的投影,从而得到字符之间的分割线。在OCR技术中,字符分割是非常重要的一步骤,因为字符之间的分割对字符识别的准确性有很大的影响。通过对投影值的判断,可以求出字符之间的分割线,这里我们根据垂直方向上的投影值进行判断,选取一个阈值进行筛选即可。使用sum()函数分别计算出水平和垂直方向上的投影值,得到每一行和每一列的投影值。

TechGlide的博客 582

网络基础(2)--通信过程之一HTTP协议

从在浏览器中输入一个网址如www.baidu.com到百度首页呈现的过程,大致可以简单的分为以下几个关键的部分: 1) 封装HTTP请求 2) DNS, 获取www.baidu.com对应的IP地址. 3) ARP 获取IP对应的MAC地址 4) TCP链接 5) HTTP响应 6) 浏览器解析与渲染 注:有些部分可能同时存在. 本篇将从其中涉及的HTTP, DNS, ARP,TC

奋斗的小鸟 940

全志F1C200S嵌入式驱动开发(lcd屏幕驱动)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 lcd RGB屏幕作为比较经济、实用的显示工具,在实际场景中使用较多。它的信号来说,一般也比较简单,除了常规的数据信号,剩下来就是行同步、场同步、数据使能和时钟信号了。数据信号方面,常见的格式有RGB888、RGB666、RGB565。为什么有什么多选择,主要还是取决于soc pin脚的多少来定。当然,pin脚越多,显示的颜色就越精准,还原度就越高。 举例来说,假设

嵌入式-老费,一个分享专业嵌入式知识的blog 2794

南方电网专业面试题(电气类-继电保护)(目录)

南方电网专业面试题(电气类-继电保护)(目录) 这些面试题围绕继电保护的基本概念、工作原理、分类、性能要求,以及变压器、断路器、母线保护、自动重合闸等电力系统关键设备的保护机制和操作原则展开,旨在评估应聘者对电力系统保护和控制策略的深入理解和实际应用能力。

weixin_44808274的博客 2160

Web/Http网络基础

超文本也是一种文本,传统文本主要是线性方式组织的,而超文本是非线性方式进行组织的,可以将各种不同空间的文字信息组织在一起,形成区别于传统文本的网状结构的文本。协议中存在各式各样的内容:从电缆的规格到 IP 地址的选定方法、寻找异地用户的方法、双方建立通信的顺序,以及 Web 页面显示需要处理的步骤,等等。在网络上,通信的双方在同一局域网(LAN)内的情况是很少的,通常是经过多台计算机和网络设备中转才能连接到对方。ARP 是一种用以解析地址的协议,根据通信方的 IP 地址就可以反查出对应的 MAC 地址。

qq_31856061的博客 2026

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Node.js -- HTTP协议和网络基础概念

本节相关内容都可以在进行查看,深入了解相关内容。

2302_79523175的博客 962

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

《图解HTTP》摘录

# 图解HTTP 第 1 章 了解Web及网络基础 1.1使用http协议访问web 客户端:通过发送请求获取服务器资源的Web浏览器等。 Web使用一种名为 HTTP(HyperText Transfer Protocol,超文本传输协议)的协议作为规范,完成从客户端到服务器端等一系列运作流程。而协议是指规则的约定。可以说,Web是建立在HTTP协议上通信的。 1.2 HTTP的诞生 1.2.1...

weixin_30576859的博客 313

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

读书笔记之《图解HTTP》

读书笔记之《图解HTTP》 一、了解 Web 及网络基础 (一)使用 HTTP 协议访问 Web 本书没有上面就是硬生生的讲概念,而是用一个问题引出 HTTP :当我们在浏览器的地址栏中输入 URL 时,Web 页面是如何呈现的? 然而书上也没有很官方的给出回答,只是说信息被发往某处,然后从某处返回一个页面就是咱们看到的页面。接着说到,像这种从服务器获取文件资源等信息的,都可以被称为客户端,返回结...

一个写代码的废物 313

web及网络基础

web及网络基础web。

louzhu56的博客 56

NISP-网络基础知识

文章目录NISP-网络基础知识1.Internet和Tcp/Ip协议2.网络协议模型:OSI与TCPIP3.TCP/IP协议分层4.通信地址5.IP地址的分类 NISP-网络基础知识 1.Internet和Tcp/Ip协议 因特网通过TCP/IP协议将遍布世界各地的计算机互联,从而形成超级计算机网络 何为协议? 协议其实是一种约定 大家预先约定好的规则,之后都按照这同一规则执行 就像多家公司...

CH_wu9的博客 1442

了解Web及网络基础——TCP/IP协议族

前言:继续更新干货,网络中需要了解的基本协议 1.3网络基础TCP/IP 通常使用的网络是在TCP/IP协议族上运行的,而HTTP是该协议族的一个子集。 1.3.1TCP/IP协议族 把互联网关联的协议集合起来总称为TCP/IP。 协议简称 协议名称 FDDI Fiber Distributed Data Interface——光纤分布式数据接口 IEEE 802.3 该协议是一个工作组,定义了有线以太网的物理层和数据链路层的介质访问控制 ICMP Internet Control

qq_36408554的博客 622

网络基础知识

一、基础概念 TCP/IP协议族 TCP/IP协议(传输控制协议/互联网协议)不是简单的一个协议,而是一组特别的协议,包括:TCP,IP,UDP,ARP,ICMP等,这些被称为子协议。在这些协议中,最重要、最著名的就是TCP和IP。因此,大部分网络管理员称整个协议族为“TCP/IP”。 ip地址 ip地址:⽤来在⽹络中标记⼀台电脑的⼀串数字,每组数字必须在 0 到 255 之间,并由点号...

qq_42444408的博客 305

计算机网络基础:4.HTTP与HTTPS

本文通过餐厅的比喻解释了HTTP协议与HTTPS协议,HTTP协议如同顾客与服务员间的通信语言,用于点单和传菜,但数据不加密,易被窃听。HTTPS则通过SSL/TLS加密,确保数据安全传输。通过Python代码示例,展示了HTTP与HTTPS的区别:HTTP传输内容为明文,HTTPS则加密传输,保护用户隐私。总结了HTTP方法、状态码、持久连接、内容类型和缓存机制等。

qq_53529450的博客 1476

URL和HTTP传输数据方式

最近感觉自己的网络知识有点欠缺所以写点网络的内容也让自己重新回顾一下 统一资源定位符(Uniform Resource Locator,URL)是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。互联网上的每个文件都有一个唯一的URL,它包含的信息指出文件的位置以及浏览器应该怎么处理它。 格式 <协议>://<主机名或主机名>[:port...

qq_45070118的博客 2305
上一篇: JavaScript DOM的基本介绍
下一篇: JavaScript 对象 Object
Re_Code
博客等级 码龄9年 2粉丝 32原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值