商库圈_Htttp_TCP | 学习笔记

简介: 快速学习商库圈_Htttp_TCP。

开发者学堂课程【2020版大数据实战项目之DMP广告系统(第六阶段)商库圈_Htttp_TCP】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/681/detail/11822


商库圈_Htttp_TCP

 

一、Http客户端

1.目标

即使是在大数据系统中,看起来和 Http 关系不太大,但其实 Http 是无处不在的。例如,网页访问这个服务器就是使用 Http 的请求,服务之间进行交互时也会使用Http。使用spark启动的时候会去使用一个 http 的工具启动服务器,让其他下载相应的架包,因此 Http 协议也是非常重要的一个协议。包括在数据处理是访问一些其他的服务也要使用http客户端,所以http是一个非常重要的东西

通过本章,详细的介绍 Http 协议,并且介绍常见的 Http 常见的访问方式

2.步骤

·Http:协议了解 Http 服务,知道它的作用

·常见的 Http 客户端

3.Http 协议

1TCP

Http 协议的底层协议,Http 协议只是一种字符串组织的方式。比如,字符串中间用什么分隔,里面可以有什么字段,这是 Http 规定的。但是中间怎么传输这些跟它没有关系,是 TCP 的内容。在几十年以前是没有互联网协议的,两台机器也不能通信,要想通信必须插一个网线,那个年代其实没有 TCP 这个东西,应该不到一百年,那么那个时候两台机器如何进行通信。

比如拿微信来说,张三的手机有一个微信,李四的手机也有一个微信。那么这两个微信要进行通信,首先张三和李四的手机要进行通信。手机也可理解为网络中与PC等价的一个终端

8.1.png

2)问题的提出,这两个微信如何通信

①解决方案一:使用网线或者 WIFI,通过 wifi和 其中的一些节点,连接到另外一台手机。或者二者之间直接插网线

首要考虑的问题就是 zhangsan 如何知道 lisi 在网络中的位置。例如,如果你想要去亲戚家串门,首先要一个亲戚家在哪里

②解决方案二:使用 IP 标注主机在网络中的位置,通过IP地址我们就可以寻址找到另一个电脑或手机,另一个终端

8.2.png

此时可见,张三的手机和李四的手机中各有一个微信和一个QQ。那么微信与微信之间想进行通信的话,首先这两个手机要进行通信,那么这两个手机分别要有一个地址。因此张三的手机地址通过李四的手机地址来访问李四这台手机

l  解决的问题:现在 zhangsan 的手机和 lisi 的手机在网络中已经有位置了,这两个手机之间已经可以通信了

l  遗留的问题:但是 zhangsan 的手机和 lisi 的手机中运行了很多程序, zhangsan 手机中的微信该如何找到 lisi 手机中的微信

③解决方案三:使用 Port 标注程序在电脑或手机中的位置

8.3.png

现在要让微信和微信之间、QQ QQ 之间进行联系,此时在张三的手机里已经能找到李四的手机,通过IP地址。但是这个程序怎么精确的找到另一个手机当中的程序,又会引入一个概念叫做端口。我们知道IP地址就是一个主机或者一个终端在网络当中的位置。那么端口就是一个程序在一个中端的位置。

比如张三的手机中有100个程序可以联网,那么这100个程序都有一个自己的端口。所以IP表示一个中端在网络中的位置,端口表示一个程序在终端之中的位置。如果我们知道了李四手机中的微信,那么两个微信之间就可以进行相应的通信

l  解决的问题:现在 zhangsan 手机上的微信,已经可以和 lisi 手机上的 微信交互了,通过端口可以解决网络中的主机中的软件识别问题

l  遗留的问题:网络通信中有很多问题,需要通信双方进行协调,比如说协议版本,容错方式,数据包长度,路由信息等,如果没有一个好的协议,双方可以进行通信吗?

④解决方案四:使用 TCP 协议,规范通信双方都需要遵循的报文格式

8.4.png

现在通过 IP 能找到另外一个手机,通过端口能找到另外一个程序。那么发送的数据应该是什么样呢?

例如我是一个只会说中国话的中国人,你是一个只会说英语的英国人,那么我们两个该怎么进行沟通呢?因此我们就需要找一个世界语,我们的语言就一样了,这时我们两个就能交互了。

张三和李四要进行通信,如果张三和李四互相发送的报文格式不一样,那么一定不知道对方在哪儿。所以我们要统一报文的格式,这个格式一定要双方都认同。大家都使用这种格式就可以进行交接和沟通了,这种格式叫做协议。

当然协议并不只是报文格式,他还指的是通信的过程,它是一整套的。比如TCP就是其中一个协议。还有一个协议叫做 UDP,他们之间的关系是TCP是有连接的安全的协议,UDP 是一个面向无连接的也不需要握手。TCP 会跟踪,并且需要回执。二者都是通信协议。

这时完整协议是TCP/IP是用IP来标注位置,用端口来标注程序,然后用TCP来规定怎么进行通信,那么两个机器就可以建立连接,并且进行通信。

微信和 QQ 是不能进行通信的。例如,TCP 只是让我们两个人同时说人话,但是人话又分为很多种。所以我们没法在TCP这一层规定我说什么你说什么,假如说理解为微信说的中文,QQ说的英文,那么他们不能进行通信,在 TCP 之上他们应该还有一层协议给应用之间使用,TCP只是规定在传输时的协议

l  解决的问题:现在双方终于有了完备的,可以相互通信的环境了, TCP 规定了通信双方报文的格式,包括各种标志位,源 IP 和目标,通信版本等

l  遗留的问题: TCP 适合所有场景吗?

跟着这个路径来解决的问题就是双方如何通信的问题,解决方案叫做 TCP / IP ,同样的,也有另外一个基础协议,是不安全的无连接的,叫做 UDP /IP

 

 

 

相关文章
|
6月前
|
网络协议
【技术分享】TCP
4月更文挑战第1天】
146 3
|
4月前
|
网络协议
TCP/IP面试三道题
精选三道TCP/IP协议面试题
40 2
|
4月前
|
网络协议 Java 数据处理
(一)Java网络编程之计网基础、TCP-IP协议簇、TCP、UDP协议及腾讯QQ通信原理综述
就目前而言,多数网络编程的系列的文章都在围绕着计算机网络体系进行阐述,但其中太多理论概念,对于大部分开发者而言,用途甚微。因此,在本系列中则会以实际开发者的工作为核心,从Java程序员的角度出发,详细解读Java的网络编程核心内容。
|
4月前
|
负载均衡 监控 网络协议
TCP四次挥手:为什么四次?原理大揭密!
**TCP四次挥手详解**:客户端发送FIN进入FIN-WAIT-1,服务器回ACK进CLOSE-WAIT;服务器发送FIN,客户端回ACK进TIME-WAIT,等待2MSL确保数据传输完毕,防止新旧连接混淆。四次挥手确保双方完全关闭连接,解决数据丢失问题。过多TIME-WAIT可通过负载均衡、优化关闭顺序或调整系统参数缓解。关注“软件求生”获取更多技术内容!
125 0
|
5月前
|
监控 网络协议 安全
TCP和UDP面试题提问
TCP是一种面向连接、可靠的协议,提供确认和重传机制,确保数据完整性和可靠性,适合网页浏览、邮件收发等。UDP则是无连接、轻量级协议,不保证数据可靠性,但适合实时应用如语音视频通话和在线游戏,追求低延迟。
|
6月前
|
域名解析 网络协议 前端开发
|
6月前
|
网络协议
【掰开揉碎】WebSocket与TCP/IP
【掰开揉碎】WebSocket与TCP/IP
|
网络协议 网络性能优化
重新认识 TCP 三次握⼿ 和 四次挥⼿
重新认识 TCP 三次握⼿ 和 四次挥⼿
65 0
|
网络协议 Java 程序员
猿创征文|UDP/TCP网络编程
猿创征文|UDP/TCP网络编程
132 0
猿创征文|UDP/TCP网络编程
|
存储 网络协议 网络性能优化
猿创征文|网络原理——UDP/TCP协议
本文主要介绍在TCP/IP的五层协议模型中,传输层的最常见的两个协议——UDP协议与TCP协议。TCP提供可靠的通信传输,而UDP则常被用于让广播和细节控制交给应用的通信传输。下边我们来一起具体了解这两个协议。
128 0
猿创征文|网络原理——UDP/TCP协议