开发者学堂课程【2020版大数据实战项目之DMP广告系统(第六阶段):商圈库_Http_协议】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/681/detail/11823
商库圈_协议
一、Http
TCP协议之上的一个应用协议,为了让两台计算机可以进行通信。例如访问百度,这个过程就像是我发送了一个请求给百度,百度把网页信息返回给我,这就是我和百度之间的通信,那么我和浏览器之间称作、client或者Broswser。这就是一个标准的CS或者BS协议,那么我们中间使用的协议肯定是TCP,也是基于IP的。通过Dns发现地址,从更应用层来说其实使用的是Http协议。那么服务器与客户端进行通信的时候。

1.客户端服务器通信常见下的特殊需求
(1)客户端访问服务器的主要目的是操作数据,数据的操作有四种:增、 删、改、查。TCP 可以表达吗?不可以
客户端和服务器进行通信,是由客户端发起的。所以用户端和服务器之间的主要目的是操作数据。比如在百度点击一个登陆,那么这时目的是登陆进入百度。如果这时点击注册,那么需要把用户数据用到财富的数据库当中。所以客户端和服务器之间的交互大部分是为了数据。
任何程序其实本质上都是算法来去操作数据。
(2)服务器返回的数据一般是结构化的,一般有很多种,例如:JSON ,XML ,具体使用哪种数据形式,TCP 可以描述吗?不可以
比如访问百度的时候,百度给我的数据。我不知道它给我的数据形式是什么格式,也不知道如何解读数据。TCP里面也不带解读功能。用TCP 也不能反映增删改查。
(3)服务器一般要在客户端记录一些状态信息,叫做 Cookie, TCP 能描述如何创建和修改 Cookie 吗?不能。因为 TCP 只是一种基础的协议。TCP 只负责双方能知道对方是谁,以及如何通信。
例如登录百度后,重新打开页面,与登录不是同一个页面,新页面不知道已经登陆过。所以登陆之后要写一段信息,带着打开新网页。
TCP不能表达客户端记录状态信息,可以说以一种特殊的组织形式来表示,但很不方便的不在协议里。客户端与服务器通信有特殊需求因此在使用 TCP 的基础之上,创建了新的协议http。Http的作用是完成tcp和服务器中特殊的功能。可能会有一些自定义的功能,但是没有一种标准,因此创建了通信标准,即协议。
Http 就是基于 TCP 协议的一种上层协议,适合 Web 服务和客户端通信的场景
2.Http 协议过程(基于TCP之上)

(1)一般是客户端发起一个向服务器的请求,告知服务器要做什么,这在 Http 中叫 Reqeust
(2)请求可能是写入一个数据,服务器会告诉客户端回执。
3.Http 消息结构
请求和响应的基本机构都如下所示

首先第一层称之为请求行,请求行里一般是 Url 信息和访问方法,就是请求的方式。第二层是用表示通信上下文信息,来表示公用信息。例如当前时间、发给你的消息以及服务器返回给我的消息是什么,我是谁等都在之中、用什么软件使用服务器,称它为 Ua。
最后一层叫做 Body,指的是我们具体发送的数据,比如要添加一个用户信息,那么添加的这个信息是什么、在哪儿存都在它之中,理论上是一个放置二进制数据,图片、文本和视频都可以。