web与网络编程

使用HTTP协议访问Web

通过发送请求获取服务器资源的Web浏览器等,被成为客户端(client)。
在这里插入图片描述

Web使用一种名为HTTP(超文本传输协议)的协议作为规范,完成从客户端到服务器端等一系列运作流程。

可以说,Web时建立在HTTP协议上通信的。

网络基础TCP/IP

通常使用的网络(包括互联网)都是在TCP/IP协议族的基础上运作的。
而HTTP属于它内部的一个子集

TCP/IP协议族

不同硬件、操作系统之间的通信,所有的一切都需要一种规则,我们把这种规则成为协议

TCP/IP的分层管理

TCP/IP协议族按层次分别分为一下4层:应用层传输层网络层数据链路层

TCP/IP协议族各层的作用如下:

应用层

应用层决定了向用户提供应用服务时通信的活动。
TCP/IP协议族内预存了各类通用的应用服务。比如**FTP(文件传输协议)**和 DNS(域名系统)服务就是其中两类。

HTTP协议也处于该层。

传输层

传输层对应上层应用层,提供处于网络连接中的两台计算机之间的数据传输。

在传输层,有两个性质不同的协议:TCP(传输控制协议)和UDP(用户数据报协议)

网络层

网络层用来处理在网络上流动的数据包。

数据包是网络传输的最小数据单位。

该层规定了通过怎样的路径(传输线路)到达对方计算机,并把数据包传送给对方。

链路层

用来处理连接网络的硬件部分。

TCP/IP通信传输流

在这里插入图片描述

传输过程

  1. 首先发送端的客户端在应用层(HTTP协议)发出一个想看某个Web页面的HTTP请求。
  2. 接着在传输层(TCP协议)把从应用层收到的数据(HTTP请求报文)进行分割并在各个报文上打上标记序号端口号转发给网络层。
  3. 在网络层(IP协议族),增加作为通信目的地的MAC地址后,转发给链路层。
  4. 接收端的雾浮起在链路层接收数据,按序往上层发布,一直到应用层。此时才算真正接收到客户端发送过来的HTTP请求。
    在这里插入图片描述
    发送端在层与层之间传输数据前,都会打上一个该层所属的首部信息。反之,接收端则会将每层对应的首部消去。

这种把数据信息包装起来的做法称为封装。

与HTTP关系密切的协议:IP、TCP和DNS

负责传输的IP协议

IP网际协议位于网络层

IP协议的作用是把各种数据包传送给对方
而要保证确实传送到对方那里,则需要满足各类条件。其中两个重要的条件是IP地址MAC地址

  • IP地址指明了节点被分配到的地址;MAC地址是指网卡所属的固定地址。
  • IP地址可以和MAC地址进行配对。
  • IP地址可变换,但MAC地址基本不会更改。

使用ARP协议凭借MAC地址进行通信

IP间的通信依赖MAC地址。
在网络上,通信的双方通常是经过多台计算机和网络设备中转才能连接到对方。而在进行中转时,会利用下一站中转设备的MAC地址来搜索下一个中转目标。
这时会采用ARP协议。

ARP是一种用以解析地址的协议,根据通信双方的IP地址就可以反查出对方的MAC地址。

确保可靠性的TCP协议

TCP协议位于传输层,提供可靠的字节流服务。

字节流服务是指,将大块数据分割成以报文段为单位的数据包进行管理。
可靠的字节流服务是指,能够把数据准确可靠地传给对方。

总之,TCP协议为了更容易传送大数据才把数据分割,而且TCP协议能够确认数据最终是否送达到对方。

确保数据能到达目标

为了准确无误地将数据送达目标处,TCP协议采用了三次握手策略

握手过程中使用了TCP的标志(flag) —— SYNACK

三次握手的过程:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  1. 发送端首先发送一个带SYN标志的数据包给对方。
  2. 接收端收到后,回传一个带有SYN/ACK标志的数据包以示传达确认信息。
  3. 最后,发送端再回传一个带ACK标志的数据包,代表"握手"结束。
    若在握手过程中某个阶段发生中断,TCP协议会再次以相同的顺序发送相同的数据包。

除了三次握手,TCP协议还有其他手段来保证通信的可靠性。

负责域名解析的DNS服务

DNS服务和HTTP协议一样位于应用层。它提供域名到IP地址之间的解析服务
计算机既可以被赋予IP地址,也可以被赋予主机名和域名。比如 www.baidu.com

用户通常使用主机名或域名的方式来访问对方的计算机,而不是直接通过IP地址访问。
这是因为字母配数字的表示形式来指定计算机名更符合人类的记忆习惯。

而计算机去理解名称却相对困难,计算机更加擅长去处理数字。

为了解决上述问题,DNS服务应运而生。
DNS协议提供通过域名查找IP地址,或逆向通过IP地址反查域名的服务。

在这里插入图片描述

各种协议与HTTP协议的关系

通过一张图来了解IP协议、TCP协议和DNS服务在使用HTTP协议的通信过程中各自发挥的作用。
在这里插入图片描述

URI和URL

统一资源标识符URI

URI是由某个协议方案表示的资源的定位标识符。

协议方案是指访问资源所使用的协议类型名称。如采用HTTP协议时,协议方案就是http。除此之外,还有ftp、mailto、telnet、file等。

URI用字符串标识某一互联网资源,而URL标识资源的地点(互联网上所处的位置)。因此,
URL时URI的子集

“RFC3986:统一资源标识符(URI)通用语法”中列举了几种 URI 例子,如下所示。

URI格式

表示指定的URI,要使用涵盖全部必要信息绝对URI绝对URL以及相对URL

相对URL是指,从浏览器中基本URI处指定的URL,形如 /image/logo.gif
在这里插入图片描述

下面是绝对URI格式:

在这里插入图片描述

协议方案名

使用http:https:等协议方案名获取访问资源时,要指定协议类型。不区分字母大小写,最后附上一个冒号(😃。

登录信息(认证)

指定用户名和密码作为从服务器端获取资源时必要的登录信息(身份认证)。此项是可选项。

服务器地址

使用绝对 URI 必须指定待访问的服务器地址。地址可以是类似hackr.jp 这种 DNS 可解析的名称,或是 192.168.1.1 这类 IPv4 地址名,还可以是 [0:0:0:0:0:0:0:1] 这样用方括号括起来的 IPv6 地址名。

服务端口号

指定服务器连接的网络端口号。此项也是可选项,若用户省略则自动使用默认端口号。

带层次的文件路径

指定服务器上的文件路径来定位特指的资源。

查询字符串

针对已指定的文件路径内的资源,可以使用查询字符串传入任意参数。此项可选。

片段标识符

使用片段标识符通常可标记出已获取资源中的子资源(文档内的某个位置)。但在 RFC 中并没有明确规定其使用方法。该项也为可选项。

参考书籍《图解http》

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/917005.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

深入理解接口测试:实用指南与最佳实践5.0(五)

✨博客主页: https://blog.csdn.net/m0_63815035?typeblog 💗《博客内容》:.NET、Java.测试开发、Python、Android、Go、Node、Android前端小程序等相关领域知识 📢博客专栏: https://blog.csdn.net/m0_63815035/cat…

2024游戏陪玩app源码的功能介绍/线上陪玩交友上线即可运营软件平台源码搭建流程

一个完整的陪玩交友系统从概念到实现再到维护的全过程得以清晰展现。每一步都需要团队的紧密协作与细致规划,以确保系统既满足用户需求,又具备良好的稳定性和可扩展性。 基础框架 移动端开发框架:如uniapp,它支持多平台开发&…

预测AI如何提升销售绩效管理:五大方式

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…

修改数据库和表的字符集

1、修改数据库字符集 mysql> show CHARACTER SET; 查看所有字符集 mysql> show create database wordpress; 查看数据库wordpress当前字符集mysql> alter database wordpress character set gbk; 将数据库wordpress字符集改为gb…

DB-GPT系列(四):DB-GPT六大基础应用场景part1

一、基础问答 进入DB-GPT后,再在线对话默认的基础功能就是对话功能。这里我们可以和使用通义千问、文心一言等在线大模型类似的方法, 来和DB-GPT进行对话。 但是值得注意的是,DB-GPT的输出结果是在内置提示词基础之上进行的回答&#xff0c…

海量数据面试题

目录 前言 什么是海量数据 一、利用位图解决 二、利用布隆过滤器解决 三、利用哈希切割解决 前言 在大数据时代,海量数据处理已成为技术领域中的一项重要课题。无论是企业级应用、互联网平台,还是人工智能和机器学习的实现,都离不开对大规…

操作系统实验:在linux下用c语言模拟进程调度算法程序

文章目录 1、实验内容2、实验结果及分析3、如何在linux下编写并执行c语言程序以及实验源代码gcc -o test test.c1、实验内容 1)用C语言编程实现对N个进程采用某种进程调度算法(如动态优先权调度算法、先来先服务算法、短进程优先算法、时间片轮转调度算法)调度执行的模拟。…

前端开发迈向全栈之路:规划与技能

一、前端开发与全栈开发的差异 前端开发主要负责构建和实现网页、Web 应用程序和移动应用的用户界面。其工作重点在于网页设计和布局,使用 HTML 和 CSS 技术定义页面的结构、样式和布局,同时运用前端框架和库如 React、Angular 或 Vue.js 等构建交互式和…

GOLANG+VUE后台管理系统

1.截图 2.后端工程截图 3.前端工程截图

中文书籍对《人月神话》的引用(161-210本):微软的秘密

中文书籍对《人月神话》的引用(第001到160本)>> 《人月神话》于1975年出版,1995年出二十周年版。自出版以来,该书被大量的书籍和文章引用,直到现在热潮不退。 2023年,清华大学出版社推出《人月神话》…

IO流(五):字节流-输入流(Inpustream)、输出流(OutputStream)--使用场景、弊端、注意事项、代码演示。

目录 1、什么是字节流? 2、字节输入流--FileInputStream 2.1 int read()方式代码演示以及注释 2.1.1 读取一个字节 2.1.2 将整个文件挨个字节读取并打印演示 2.2 int read(byte[] buffer)方式代码演示以及注释 2.2 .1 一次读取3字节演示 2.2.2 一次性读取全…

直流保护电路设计及保护器件参数说明和选型

在工控产品设计中时常会涉及到电源保护的电路设计的问题,在深圳瑞隆源电子给出的参考电路来切入主题,对气体放电管、压敏电阻和TVS这三类保护器件的参数及选型进行详细说明,以达到深刻理解的目的。 图1 直流保护电路 举例说明,若…

FastGPT部署通义千问Qwen和智谱glm模型|OneAPI配置免费的第三方API

继这篇博客之后 从零开始FastGPT本地部署|Windows 有同学问,不想在多个平台申请API-Key,不好管理且要付费,有木有白嫖方案呀? 答:有啊。用硅基流动。 注册方法看这篇 【1024送福利】硅基流动送2000万token啦&#xff0…

机器学习day2-特征工程

四.特征工程 1.概念 一般使用pandas来进行数据清洗和数据处理、使用sklearn来进行特征工程 将任意数据(文本或图像等)转换为数字特征,对特征进行相关的处理 步骤:1.特征提取;2.无量纲化(预处理&#xf…

sql数据库-排序查询-DQL

目录 语法 排序方式 举例 将表按年龄从小到大排序 将表按年龄从大到小排序 ​编辑 多重排序 将表按年龄升序,年龄相同按入职时间降序 语法 select * from 表名 order by 字段名1 排序方式1,字段2 排序方式2; 排序方式 升序:ASC&…

响应“一机两用”政策 落实政务外网安全

在数字化时代,政务办公外网安全的重要性日益凸显,特别是在“一机两用”的背景下,即同一台终端既要处理政务内网的数据,又要访问互联网,这对网络安全提出了更高的要求。深信达SPN安全上网方案,即反向沙箱技术…

测试实项中的偶必现难测bug--互斥逻辑异常

问题: 今天线上出了一个很奇怪的问题,看现象和接口是因为数据问题导致app模块奔溃 初步排查数据恢复后还是出现了数据重复的问题,查看后台实际只有一条数据,但是显示在app却出现了两条一模一样的置顶数据 排查: 1、顺着这个逻辑,我们准备在预发复现这个场景,先是cop…

Burpsuite的安装使用说明——【渗透工具介绍与使用】

# 前记 **工欲善其事必先利其器,本系列先介绍一些常见的安全工具的安装与使用** 该文章介绍的是Burpsuite的安装使用说明 > 🍀 作者简介 > 小菜鸡罢了,研究过漏洞、扫过端口、写过脚本,迷恋着CTF,脑袋里充满了各…

如何在 WordPress 中轻松强制所有用户退出登录

作为一名长期管理 WordPress 网站的站长,我深知维护网站安全性的重要性。尤其是在面对会员网站或付费内容平台时,确保所有用户的登录状态是最新的,是维持网站正常运营的关键之一。今天,我就分享一下如何通过简单的步骤&#xff0c…

SNN学习(2):深入了解SNN及LIF神经元的原理和运行过程

目录 一、STDP机制 1、STDP 的基本原理 权重调整的“时间差依赖性” 2、STDP 的数学模型 二、SNN的应用场景 三、从人工神经网络ANN到脉冲神经网络SNN 1、脉冲 2、稀疏性(Sparsity) 3、事件驱动处理(静态抑制) 四、脉冲…