热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

网络基础URLDNS解析的过程TCP/UDPHTTP与HTTPSTCP三次握手

网络基础URIUniformResourceIdentifer统一资源标识符用来唯一的标识一个资源URLUniformResourceLocator统一资源定位符URL可以以哦




网络基础

URI Uniform Resource Identifer
统一资源标识符 用来唯一的标识一个资源

URL Uniform Resource Locator
统一资源定位符 URL可以以哦那个来标识一个资源 而且还指明了如何定位这个资源 用地址定义一个资源

URN Uniform Resource Name
统一资源命名 即通过名字来表示资源的 用名称定位一个资源

URL肯定是一个URL URL并不一定是URL 也有可能是URN
URL与URN是URI的子集


URL

1.资源标识
2.具有定位资源的功能(资源的具体位置)
3.指明了获取资源所采用的协议

协议名称 + 主机名称 + 端口号 + 路径 + 文件 + 查询所需的字符串
https 默认端口号 443 http 默认端口号 80 MySQL 默认端口号 3306


举例

想找一个人 那这个人的名称就是一个URI

通过家庭住址找就是URL 通过姓名+身份证号就是URN


DNS

Domain Name Server 域名服务器

作用:域名与对应的IP转换的服务器

特征:DNS中保存了一张域名与对应的IP地址的表 一个域名对应一个IP地址 一个IP地址可以对应多个域名

gTLD: generic Top-Level DNS Server 顶级域名服务器

为所有.com .net …后缀域名解析的服务器


DNS解析的过程

当输入一个域名 先从DNS本地服务器寻找 这个域名对应的IP地址 如果缓存里没有找到
去向根服务器去寻找 如果根服务器中没有找到 就去.com域服务器寻找 如果还没找到
就去 域名的域服务器寻找 最后会在这里找到对应的IP地址 然后缓存到DNS本地服务器
下次寻找就不会这么麻烦了


IP

Internet Protocol Address

互联网协议地址 IP地址

作用 分配给用户上网使用的互联网协议

分类 IPv4(长度32位(4个字节) 十进制表示) IPv6(8组(128位) 16进制)

IPv6 地址空间更大 路由表更小 组表支持以及对流支持增强 对自动配置的支持 更高的安全性


TCP (打电话)

Transmission Control Protocol 传输控制协议

特点 面向连接(首发数据前 必须建立可靠的连接)

建立连接的基础:三次握手

应用场景:数据必须准确无误的收发 HTTP请求 FTP文件传输 邮件收发

优点 稳定 重传机制 拥塞控制机制 断开机制

缺点 速度慢 效率低 占用资源 容易被攻击(三次握手的过程中 DOS DDOS 攻击)

TCP/IP协议组 提供点对点的连接机制 制定了数据封装 定址 传输 路由 数据接收的标准


UDP(喇叭叫人)

User Data Protocal 用户数据报协议

特点 面向无连接(不可靠的协议 无传输状态机制) 无连接信息发送机制

应用场景 无需确保通讯质量且要求速度快 无需确保信息完整
消息收发 语音通话 直播(QQ)

优点 安全 快速 漏洞少(UDP flood攻击)

缺点 不可靠 不稳定 容易丢包

总结 只要目的的源地址 端口号 地地址 端口号确定 则可以直接发送信息报文 但不能保证一定能收到或收到完整的数据


HTTP与HTTPS

HTTP:HyperText Tranfer Protocol 超文本传输协议

定义 客户端和服务器端请求和应答的标准 用于从WEB服务器传输超文本到本地浏览器的传输协议

HTTP请求 按照协议规则先向WEB服务器发送的将超文本传输到本地浏览器的请求
HTTPS:HyperText Transfer Protocol Secure 超文本传输安全协议

定义 HTTP的安全版 (安全基础是SSL/TLS)

SSL Secure Sockets Layer 安全套接层
TLS Transport Layer Security 传输层安全

位网络通讯提供安全及数据完整性的一种安全协议 对网络连接进行加密


区别

1.HTTP是不安全的(监听和中间人攻击的手段 获取网站账户信息和敏感信息)
HTTPS可防止被攻击

2.HTTP协议的传输内容是明文 直接在TCP连接上运行 客户端和服务器都无法验证对方身份

3.HTTPS协议的传输内容都被SSL/TLS加密 且运行在SSL/TLS上 SSL/TLS运行在TCP连接上 所以数据传输是安全的


TCP三次握手

标志位: 数据包
SYN:Synchronize Sequence Numbers 同步序列编号
ACK:Acknowledgement 确认字符

状态
LISTEN: 侦听TCP端口的连接请求(我等着你发送连接请求呢)
SYN_SENT:在发送连接请求后等待匹配的连接请求(我发送了连接请求 我等你回复哈)
SYN_RECEIVED:在收到和发送一个连接请求后等待对连接请求的确认 (我收到你的连接请求了哈 我等你回复我)
ESTABLISHED:代表一个打开的连接 数据可以传送给用户(建立连接了哈 我跟你说一下)
在这里插入图片描述

第一次握手
客户端向服务器发送SYN标志位(序号是J)并进入SYN_SEND状态(等待服务器确认状态)

第二次握手
服务器收到来自客户端的SYNJ 服务端会确认该数据包已收到并发送ACK标志位(序号是J+1) 和SYN标志位(序号是K) 服务器进入SYN_RECV(请求接收并等待客户端确认状态)

第三次握手
客户端进入连接状态后 向服务器发送ACK标志位(序号是K+1) 确认客户端已收到建立连接确认 服务器收到ACK标志位后 服务端进入连接建立状态







推荐阅读
  • 网站访问全流程解析
    本文详细介绍了从用户在浏览器中输入一个域名(如www.yy.com)到页面完全展示的整个过程,包括DNS解析、TCP连接、请求响应等多个步骤。 ... [详细]
  • 秒建一个后台管理系统?用这5个开源免费的Java项目就够了
    秒建一个后台管理系统?用这5个开源免费的Java项目就够了 ... [详细]
  • Docker 中创建 CentOS 容器并安装 MySQL 进行本地连接
    本文详细介绍了如何在 Docker 中创建 CentOS 容器,并在容器中安装 MySQL 以实现本地连接。文章内容包括镜像拉取、容器创建、MySQL 安装与配置等步骤。 ... [详细]
  • Git命令基础应用指南
    本指南详细介绍了Git命令的基础应用,包括如何使用`git clone`从远程服务器克隆仓库(例如:`git clone [url/path/repository]`)以及如何克隆本地仓库(例如:`git clone [local/path/repository]`)。此外,还提供了常见的Git操作技巧,帮助开发者高效管理代码版本。 ... [详细]
  • Java Socket 关键参数详解与优化建议
    Java Socket 的 API 虽然被广泛使用,但其关键参数的用途却鲜为人知。本文详细解析了 Java Socket 中的重要参数,如 backlog 参数,它用于控制服务器等待连接请求的队列长度。此外,还探讨了其他参数如 SO_TIMEOUT、SO_REUSEADDR 等的配置方法及其对性能的影响,并提供了优化建议,帮助开发者提升网络通信的稳定性和效率。 ... [详细]
  • 近期,微信公众平台上的HTML5游戏引起了广泛讨论,预示着HTML5游戏将迎来新的发展机遇。磊友科技的赵霏,作为一名HTML5技术的倡导者,分享了他在微信平台上开发HTML5游戏的经验和见解。 ... [详细]
  • 在 CentOS 6.4 上安装 QT5 并启动 Qt Creator 时,可能会遇到缺少 GLIBCXX_3.4.15 的问题。这是由于系统中的 libstdc++.so.6 版本过低。本文将详细介绍如何通过更新 GCC 版本来解决这一问题。 ... [详细]
  • 基于iSCSI的SQL Server 2012群集测试(一)SQL群集安装
    一、测试需求介绍与准备公司计划服务器迁移过程计划同时上线SQLServer2012,引入SQLServer2012群集提高高可用性,需要对SQLServ ... [详细]
  • IOS Run loop详解
    为什么80%的码农都做不了架构师?转自http:blog.csdn.netztp800201articledetails9240913感谢作者分享Objecti ... [详细]
  • Linux CentOS 7 安装PostgreSQL 9.5.17 (源码编译)
    近日需要将PostgreSQL数据库从Windows中迁移到Linux中,LinuxCentOS7安装PostgreSQL9.5.17安装过程特此记录。安装环境&#x ... [详细]
  • 微信公众号推送模板40036问题
    返回码错误码描述说明40001invalidcredential不合法的调用凭证40002invalidgrant_type不合法的grant_type40003invalidop ... [详细]
  • javascript分页类支持页码格式
    前端时间因为项目需要,要对一个产品下所有的附属图片进行分页显示,没考虑ajax一张张请求,所以干脆一次性全部把图片out,然 ... [详细]
  • 解决Bootstrap DataTable Ajax请求重复问题
    在最近的一个项目中,我们使用了JQuery DataTable进行数据展示,虽然使用起来非常方便,但在测试过程中发现了一个问题:当查询条件改变时,有时查询结果的数据不正确。通过FireBug调试发现,点击搜索按钮时,会发送两次Ajax请求,一次是原条件的请求,一次是新条件的请求。 ... [详细]
  • 本文介绍了如何利用HTTP隧道技术在受限网络环境中绕过IDS和防火墙等安全设备,实现RDP端口的暴力破解攻击。文章详细描述了部署过程、攻击实施及流量分析,旨在提升网络安全意识。 ... [详细]
  • 在软件开发过程中,经常需要将多个项目或模块进行集成和调试,尤其是当项目依赖于第三方开源库(如Cordova、CocoaPods)时。本文介绍了如何在Xcode中高效地进行多项目联合调试,分享了一些实用的技巧和最佳实践,帮助开发者解决常见的调试难题,提高开发效率。 ... [详细]
author-avatar
森__林蘑菇
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有