声明
学习视频来自B站UP主泷羽sec,如涉及侵权马上删除文章
笔记的只是方便各位师傅学习知识,以下网站只涉及学习内容,其他的都与本人无关,切莫逾越法律红线,否则后果自负
泷羽sec的个人空间-泷羽sec个人主页-哔哩哔哩视频https://space.bilibili.com/350329294
一,HTTP协议
1,HTTP协议概述
HTTP(HyperText Transfer Protocol)是用于分布式、协作式和动态Web的核心通信协议。它定义了浏览器和Web服务器之间如何传输超文本或文件。HTTP是一个无状态协议,这意味着每个请求和响应都是独立的,不依赖于前后请求的状态。
HTTP协议的基本工作原理
- 请求-响应模型:HTTP工作在客户端——服务端(browser/server,B/S架构)上,遵循请求(Request)/应答(Response)模型。客户端(通常是浏览器)向服务器发送一个请求,服务器处理请求并返回适当的应答。
- 无状态特性:HTTP是一个无状态的协议。无状态是指客户机(Web浏览器)和服务器之间不需要建立持久的连接,这意味着当一个客户端向服务器端发出请求,然后服务器返回响应(response),连接就被关闭了,在服务器端不保留连接的有关信息。
- 请求方法:HTTP定义了一组请求方法(如GET、POST、PUT、DELETE等),这些方法指示服务器执行特定的操作。GET方法用于请求指定的资源,POST方法用于向指定的资源提交数据。
- 状态码:服务器在响应中包含一个状态码,用于指示请求的结果。常见的状态码包括200(成功)、404(未找到)和500(服务器内部错误)。
HTTP协议的应用场景
HTTP协议主要用于Web开发中,用于浏览器和服务器之间的通信。它也是许多现代Web服务和API的基础协议。HTTP协议还被用于其他类型的网络通信,如文件传输、电子邮件和即时消息等。
2,HTTP版本演进
1. HTTP/0.9
- 诞生时间:1991年
- 特点:
- 最初的HTTP版本,非常简单。
- 只支持GET方法,用于请求HTML页面。
- 没有请求头和响应头,无法传输复杂的资源。
- 无状态连接,每次请求都需要建立新的TCP连接。
2. HTTP/1.0
- 诞生时间:1996年
- 特点:
- 引入了请求头和响应头,支持多种文件类型(如图片、视频等)。
- 支持POST、HEAD等方法,增加了请求的灵活性。
- 引入了状态码,用于指示请求的结果。
- 仍然是无状态连接,但可以复用TCP连接,提高了传输效率。
3. HTTP/1.1
- 诞生时间:1999年
- 特点:
- 在HTTP/1.0的基础上进行了功能扩展和性能优化。
- 引入了PUT、PATCH、OPTIONS、DELETE等方法,丰富了请求和响应的功能。
- 支持长连接和管道化技术,减少了队头阻塞问题。
- 引入了Host请求头,允许多个域名服务端在同一台主机上部署。
- 仍然存在队头阻塞问题,性能仍有提升空间。
4. HTTP/2.0
- 诞生时间:2015年
- 特点:
- 对HTTP/1.1进行了重大革新,采用了二进制分帧技术。
- 支持多路复用、头部压缩和服务端推送,大幅提高了传输效率。
- 解决了HTTP/1.1中的队头阻塞问题,提高了并行请求的处理能力。
- 仍然基于TCP协议,但引入了TLS支持,增强了安全性。
5. HTTP/3.0
- 诞生时间:2020年
- 特点:
- 基于QUIC协议,完全重新设计了HTTP协议。
- 解决了TCP中的队头阻塞问题,提高了无线网络环境下的传输效率。
- 优化了连接建立和握手过程,减少了延迟。
- 更适合移动互联网和5G网络环境,提供了更好的用户体验。
3,HTTP协议请求方式
1. GET
- 用途:请求指定的资源。
- 特点:
- 请求参数包含在URL中,以查询字符串的形式出现。
- 是一种安全的方法,不会对服务器上的数据进行修改。
- 适用于获取数据,如加载网页、获取API数据等。
- 由于参数在URL中可见,不适合传递敏感信息。
2. POST
- 用途:向指定的资源提交数据。
- 特点:
- 请求参数包含在请求体中,而不是URL中。
- 可以传递大量数据,且数据在传输过程中是隐藏的。
- 通常用于提交表单、上传文件等操作。
- 是一种非幂等的方法,即多次相同的请求可能会产生不同的效果(如多次提交表单)。
3. PUT
- 用途:向服务器上传内容,替换指定资源的数据。
- 特点:
- 请求参数包含在请求体中。
- 如果资源不存在,则创建该资源;如果资源存在,则更新该资源。
- 是一种幂等的方法,即多次相同的请求会产生相同的效果。
4. DELETE
- 用途:请求删除指定的资源。
- 特点:
- 请求参数可以包含在URL中,也可以包含在请求体中。
- 是一种幂等的方法,即多次相同的请求会产生相同的效果(资源被删除)。
5. HEAD
- 用途:请求获取指定资源的响应头信息,而不返回响应体。
- 特点:
- 类似于GET请求,但只返回响应头信息,不返回响应体。
- 用于检查某个资源是否存在,或者获取资源的元数据。
6. OPTIONS
- 用途:请求有关资源的通信选项,如支持哪些HTTP方法。
- 特点:
- 用于了解服务器的功能,如支持的HTTP方法、头信息等。
- 常用于跨域资源共享(CORS)的预检请求。
7. TRACE
- 用途:回显服务器收到的请求,主要用于测试或诊断。
- 特点:
- 请求参数包含在请求体中。
- 服务器会将接收到的请求原样返回给客户端,用于检测请求在传输过程中是否被篡改。
8. CONNECT
- 用途:在客户端和代理服务器之间建立隧道,通常用于SSL加密通信。
- 特点:
- 用于通过代理服务器建立与目标服务器的安全连接(如HTTPS)。
3,HTTP协议之URL
URL(Uniform Resource Locator,统一资源定位符)是互联网上用来标识某一资源的地址。在HTTP协议中,URL用于指定客户端请求的资源位置。URL的结构和组成部分如下:
1. 协议部分
- 定义:指定使用的传输协议。
- 示例:http: 或 https:
- 作用:告知浏览器使用何种协议来访问资源。
2. 域名部分
- 定义:指定资源所在的服务器。
- 示例:www.aspxfans.com
- 作用:通过域名解析找到服务器的IP地址,从而进行通信。
3. 端口部分
- 定义:指定服务器上监听请求的端口号。
- 示例::80(HTTP默认端口)或 :443(HTTPS默认端口)
- 作用:帮助浏览器知道在哪个端口上与服务器通信。
4. 虚拟目录部分
- 定义:指定服务器上资源的路径。
- 示例:/news/
- 作用:指示服务器查找特定目录下的资源。
5. 文件名部分
- 定义:指定具体的资源文件。
- 示例:index.asp
- 作用:告诉服务器需要访问的具体文件。
6. 锚部分
- 定义:指定资源中的某个片段。
- 示例:#name
- 作用:浏览器会滚动到页面中具有该锚名称的位置。
7. 参数部分
- 定义:传递给服务器的额外信息。
- 示例:?boardID=5&ID=24618&page=1
- 作用:服务器可以根据这些参数来动态生成响应内容。
URL的作用
URL在HTTP协议中扮演着至关重要的角色,它不仅帮助浏览器找到服务器上的特定资源,还能通过传递参数来实现动态内容的请求。URL的结构化设计使得资源的定位和访问变得简洁而高效。
4,HTTP协议状态码
HTTP状态码(HTTP Status Code)是服务器在响应客户端请求时返回的一个数字代码,用于表示服务器对请求的处理状态。这些状态码可以帮助开发者了解和调试应用程序的行为
1xx 信息性状态码
- 100 Continue:继续。客户端应继续其请求。
- 101 Switching Protocols:切换协议。服务器根据客户端的请求切换协议。
2xx 成功状态码
- 200 OK:请求成功。服务器已成功处理了请求。
- 201 Created:已创建。成功请求并创建了新的资源。
- 202 Accepted:已接受。已经接受请求,但未处理请求。
- 204 No Content:无内容。服务器成功处理了请求,但没有返回任何内容。
- 205 Reset Content:重置内容。服务器成功处理了请求,但没有返回任何内容。
3xx 重定向状态码
- 301 Moved Permanently:永久移动。请求的资源已被永久的移动到新URI。
- 302 Found:临时移动。资源只是临时被移动。客户端应继续使用原有URI。
- 303 See Other:查看其他位置。服务器返回此代码时,不会返回网页内容。
- 304 Not Modified:未修改。自从上次请求后,请求的网页未修改过。
4xx 客户端错误状态码
- 400 Bad Request:错误请求。服务器不理解请求的语法。
- 401 Unauthorized:未授权。请求要求身份验证。
- 403 Forbidden:禁止。服务器理解请求客户端的请求但是拒绝执行此请求。
- 404 Not Found:未找到。服务器找不到请求的网页。
5xx 服务器错误状态码
- 500 Internal Server Error:服务器内部错误,无法完成请求。
- 502 Bad Gateway:错误网关。作为网关或者代理工作的服务器尝试执行请求时,从远程服务器接收到了一个无效的响应。
4,HTTP协议抓包分析实验
实验目的
通过Wireshark抓包工具,对HTTP协议进行抓包和分析,了解HTTP协议的工作原理和数据传输过程。
实验步骤
1. 准备工作
- 安装Wireshark抓包工具。
- 确保网络连接正常。
2. 启动Wireshark
- 打开Wireshark软件。
- 选择一个网络接口进行监听。
因为是插的网线,所以监网络接口听以太网
3. 设置过滤条件
- 在Wireshark主窗口顶部的Filter栏中输入http,以便只捕获HTTP相关的数据包。
4. 开始抓包
- 点击“开始捕获”按钮,Wireshark开始捕获网络数据包。
5. 发送HTTP请求
- 在浏览器中输入一个URL地址,例如:https://www.baidu.com ,然后按下回车键。
- 浏览器将会发送一个HTTP GET请求到服务器。
6. 停止抓包
- 等待几秒钟,确保所有相关的HTTP数据包都被捕获。
- 点击“停止捕获”按钮,Wireshark停止捕获网络数据包。
7. 分析抓包数据
- 在Wireshark的数据包列表窗口中,查看捕获到的HTTP数据包。
- 双击某个数据包,查看详细的数据包内容,包括HTTP请求头和响应头。
8. 回答实验问题
- 根据抓包数据,回答以下实验问题:
- 你的浏览器运行的HTTP是哪个版本?
- 你的浏览器能接受服务器的哪些语言?
- 你的电脑的IP地址是多少?服务器的IP地址是多少?
- 从服务器返回到你的浏览器的状态码是什么?
- 多少字节的内容已经返回到你的浏览器?
- 除了已回答过的字段外,头部还有哪些字段?
二,内外网划分
内外网的划分是基于网络的访问范围和安全性进行的
内网,也称为局域网(Local Area Network, LAN),是指在一个相对较小的地理范围内,通过计算机和网络设备建立的网络。内网通常不直接连接到外部互联网,而是通过路由器、网关等设备进行连接。
内网的定义
- 地理范围较小:内网通常覆盖一个办公室、学校、工厂或其他类似的局部区域。
- 高密度连接:内网内的设备密度较高,通常包括计算机、打印机、服务器等。
- 资源共享:内网内的设备可以方便地共享资源,如文件、打印机和其他硬件设备。
- 安全性:内网通过各种安全措施,如访问控制、加密等,防止外部网络的非授权访问和潜在的安全威胁。
内网的特定用途
- 高效资源共享:内网可以实现各个局部区域设备之间的通信和信息交流,例如共享打印机、文件等资源,方便快捷地管理和使用共享资源1。
- 提高安全性:由于内网与外网相对隔离,外部用户难以直接访问内网资源。内网通过限制访问权限、加密及其他安全控制手段,可以防止外部入侵、黑客攻击等安全威胁,提升了局部区域内网络的安全性1。
- 稳定的网络性能:内网网络性能相对稳定,因为它的用户数量和流量通常是可控的。通过优化网络架构,配置合适的网络设备来确保内网的高速与稳定运行
- 节省成本:通过内网与外网进行数据传输可以节约网络带宽和成本,同时也可以提高局部区域内的信息传输效率1。
- 方便管理:内网通常由一个管理员或者管理小组控制,可以方便地对局部区域内的网络做出调整和管理1。
- 企业内部通信:企业内部网络往往不接入互联网,而是通过内网进行管理和消息传递,提升工作效率1。
- 医疗领域应用:医院内部通过内网可以实现医护人员之间的沟通和信息交流、病历的管理和查询等,方便对患者的治疗和护理工作1。
- 工业生产:通过物联网、传感器等技术和内部网建立数字化和智能化的网络,可以实现数据采集、监控生产过程、改善生产效率和提高工业安全等目的1。
外网,通常指的是广域网(Wide Area Network, WAN)或互联网(Internet),是相对于内网(局域网)而言的网络形式。外网覆盖的地理范围广泛,可以跨越城市、国家甚至大洲,通过各种网络设备和技术实现全球范围内的信息交流和资源共享。通常由互联网服务提供商(ISP)提供接入服务
外网的定义
- 广泛覆盖:外网覆盖的地理范围非常广泛,可以连接全球各地的计算机和网络设备。
- 开放性:外网通常是公开的,允许任何接入互联网的设备进行通信和信息交换。
- 多样化的连接方式:外网通过各种网络设备和技术,如路由器、交换机、卫星通信等,实现不同网络之间的连接和通信。
- 资源共享:外网可以实现全球范围内的资源共享,如访问网页、下载文件、在线交流等。
外网的作用和优势
- 全球通信:外网使得全球各地的人们和组织能够方便地进行通信和信息交流,打破了地理和时间的限制。
- 资源共享:外网可以实现全球范围内的资源共享,如访问网页、下载文件、在线交流等。
- 电子商务:外网为电子商务提供了基础平台,使得全球范围内的商业交易变得更加便捷和高效。
- 远程工作和学习:外网使得远程工作和学习成为可能,人们可以在家中或任何有网络连接的地方进行工作和学习。
- 娱乐和休闲:外网提供了丰富的娱乐和休闲资源,如在线游戏、视频流媒体、社交媒体等。
外网的常见类型
- 互联网:这是最常见和广泛使用的外网形式,连接全球数十亿的设备和用户。
- 专用广域网:一些企业和组织会建立专用的广域网,用于连接分布在不同地理位置的分支机构和员工。
- 虚拟专用网络(VPN):VPN是一种通过公共网络(如互联网)建立的私密网络,用于保护数据传输的安全性和隐私性。
公网地址与私网地址在内外网划分中起着重要作用
公网地址,也称为公共IP地址,是互联网上唯一标识一台设备或一组设备的地址。它是全球范围内唯一的,由互联网服务提供商(ISP)可以被互联网上的任何设备识别和访问。公网地址是互联网通信的基础,用于确保数据包能够从源设备正确地传输到目标设备。
公网地址的定义
- 唯一性:每个公网地址在全球范围内都是唯一的,确保了互联网上每个设备都能被唯一标识。
- 可访问性/可路由性:公网地址是可以被互联网上的任何设备访问的,这意味着拥有公网地址的设备可以直接与其他互联网设备进行通信。
- 分配方式:公网地址通常由互联网服务提供商(ISP)或互联网号码分配机构(IANA)分配。
- 有限性:由于IPv4地址资源紧张,公网地址的数量也是有限的。
公网地址的作用和优势
- 全球通信:公网地址使得设备能够在全球范围内进行通信,打破了地理和时间的限制。
- 资源访问:拥有公网地址的设备可以访问互联网上的各种资源,如网页、文件、服务等。
- 服务提供:许多互联网服务,如网站、电子邮件服务器、云服务等,都需要依赖公网地址来提供服务。
- 安全性:公网地址可以通过防火墙、入侵检测系统等安全设备进行监控和保护,确保网络通信的安全性。
公网地址的常见类型
- IPv4地址:这是最常见的公网地址类型,采用32位地址格式,如192.168.1.1。
- IPv6地址:随着IPv4地址的逐渐耗尽,IPv6地址成为新的标准,采用128位地址格式,如2001:0db8:85a3:0000:0000:8a2e:0370:7334。
私网地址,也称为私有IP地址,是专为局域网(LAN)内部通信设计的IP地址范围。这些地址在互联网上是不可路由的,意味着它们不能直接通过互联网进行通信。私网地址主要用于内部网络设备之间的通信,如企业内部网络、家庭网络等。
私网地址的定义
- 非唯一性:私网地址在不同的局域网中可以重复使用,因为它们不会在互联网上暴露。
- 内部通信:这些地址专门用于局域网内部的设备通信,确保了内部网络的高效运行。
- 地址范围:私网地址通常包括以下范围:
- A类地址:10.0.0.0 到 10.255.255.255
- B类地址:172.16.0.0 到 172.31.255.255
- C类地址:192.168.0.0 到 192.168.255.255
私网地址的作用和优势
- 地址节约:通过使用私网地址,可以大大减少对公网地址的需求,缓解了IPv4地址耗尽的压力。
- 网络隔离:私网地址使得内部网络与外部互联网完全隔离,增强了网络的安全性。
- 灵活性:私网地址可以根据内部网络的需求灵活分配,便于网络管理和扩展。
- NAT转换:通过网络地址转换(NAT)技术,私网地址可以被转换为公网地址,从而实现与外部互联网的通信。
私网地址的应用场景
- 企业内部网络:大型企业通常会使用私网地址来构建内部网络,以便于员工之间的通信和资源共享。
- 家庭网络:家庭路由器通常会分配私网地址给家庭内部的设备,如电脑、手机、打印机等。
- 数据中心:数据中心内部的服务器和其他设备通常也会使用私网地址进行通信,以提高网络效率和安全性。
- 无线网络:无线网络接入通常会为连接的设备分配私网地址,以便在家庭或企业内部实现无线网络覆盖
NAT技术实现了内部网络的私有IP地址转换为外部网络的公共IP地址
NAT(网络地址转换)概述
NAT(网络地址转换,Network Address Translation)是一种网络通信技术,主要用于将内部网络的私有IP地址转换为公共IP地址,以便内部网络中的设备能够访问互联网。NAT技术在解决公共IP地址不足和增强网络安全方面发挥了重要作用。
NAT的工作原理
- 地址转换:NAT设备(通常是路由器或防火墙)在内部网络和外部网络之间进行IP地址转换。内部设备通过NAT设备连接到互联网。
- 端口映射:通过不同的端口号来区分不同的内部设备,允许多个内部设备共享一个公共IP地址。
- 静态NAT:将内部网络中的私有IP地址与公共IP地址进行一对一映射,适用于特定设备需要固定公网IP的情况。
- 动态NAT:从NAT池中动态分配公共IP地址给内部设备,适用于多个私网IP地址对应多个公网IP地址的场景。
- PAT(端口地址转换):通过端口复用技术,将多个内部设备共享一个公共IP地址,并使用不同的端口号来区分。
NAT的优点和缺点
优点:
- 节省公共IP地址:通过NAT技术,多个内部设备可以共享一个公共IP地址,大大减少了对公网IP地址的需求。
- 增强网络安全性:NAT可以隐藏内部网络中的私有IP地址,降低受到外部攻击的风险。
- 灵活性:NAT可以根据网络需求灵活配置,适应不同的网络环境。
缺点:
- 延迟增加:由于需要进行地址转换,可能会引入一定的网络延迟。
- 配置和维护复杂性:NAT的配置和管理可能比较复杂,特别是对于大规模网络。
- 不支持某些应用:某些应用程序(如VPN)可能不兼容NAT,需要额外的配置。
NAT的应用场景
- 家庭网络:家庭路由器通常会使用NAT技术,使多个设备(如电脑、手机、平板等)能够共享一个公共IP地址访问互联网。
- 企业内部网络:大型企业使用NAT来管理内部网络设备的公网访问,同时增强网络安全性。
- 数据中心:数据中心内部的服务器和其他设备通过NAT技术实现对外部互联网的访问,同时确保内部网络的安全。