kylin-HTTP理论及PV、UV、IP的概念
HTTP
目录
HTTP请求行
请求 URL: http://10.0.0.7/nginx-logo.png
Request Method: GET # 请求方法
状态代码: 200 OK # 状态
远程地址: 10.0.0.7:80 # 请求主机
HTTP的标头(重点)
HTTP请求标头
accept: image/avif,image/webp,image/apng # 请求的资源类型
accept-encoding: gzip, deflate # 使用gzip进行压缩
accept-language: zh-CN,zh;q=0.9,en;q=0.8 # 请求的语言
cache-control: no-cache # 当前的页面是否被缓存
connection: keep-alive # 长连接 默认使用http1.1协议 1.0短连接 2.0为并发连接
host: 10.0.0.7 # 请求的主机
pragma: no-cache # 是否缓存
referer: http://10.0.0.7/ # 来源页面
user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36 Edg/131.0.0.0 # 客户端
HTTP响应标头
accept-ranges: bytes # 响应长度字节
connection: keep-alive # 响应长连接
content-length: 368 # 资源的大小
content-type: image/png # 响应的资源类型
date: Thu, 05 Dec 2024 08:05:19 GMT # 响应时间
etag: "66ed190e-170" # 缓存相关
last-modified: Fri, 20 Sep 2024 06:41:18 GMT # 缓存
server: nginx/1.21.5 # 响应服务版本
注: GMT,即格林尼治标准时间,是零时区的时间。
北京时间,位于中国标准时间(CST),比GMT快8小时,即UTC+8
HTTP的常见状态码(重点)
#2xx (成功)
200 OK:请求成功。
201 Created:请求已经成功,并因此创建了一个新的资源。
202 Accepted:请求已被接受,但还未处理。
203 Non-Authoritative Information:服务器已成功处理了请求,但返回的信息可能来自另一个来源。
#3xx – 重定向
301 Moved Permanently:请求的URL已移动到另一个URL。
302 Found:请求的资源现在临时从不同的URI返回。
304 Not Modified:资源自上次请求后没有更改。
307 Temporary Redirect:请求的资源现在临时从不同的URI返回。
#4xx – 客户端错误
401 Unauthorized:请求未授权。
403 Forbidden:服务器拒绝请求。
404 Not Found:服务器找不到请求的资源。
#5xx – 服务器错误
500 Internal Server Error:服务器内部出错。
501 Not Implemented:服务器不支持实现请求所需要的功能。
502 Bad Gateway:作为网关或代理工作的服务器遇到了一个无效响应。
503 Service Unavailable:服务器目前无法使用(由于超载或停机维护)。
504 Gateway Timeout:网关或代理服务器没有及时从上游服务器收到请求。
HTTP的三种协议
HTTP1.0
-
单一连接:每次发送请求时,客户端和服务器都需要建立一个新的TCP连接。请求完成后,连接关闭。
-
无持久连接:每次请求和响应都要建立一个新的连接。
-
无管道化:客户端必须等待前一个请求的响应返回,才能发送下一个请求。
-
简化示意图
Client Server
|----Request 1---->|
|<---Response 1---|
|----Request 2---->|
|<---Response 2---|
(重复建立新连接,请求一次断开一次)
HTTP1.1
-
持久连接:HTTP/1.1 默认使用持久连接(
Connection: keep-alive),客户端和服务器之间的TCP连接在一个请求-响应周期后不会立即关闭,可以继续重用。 -
管道化支持:客户端可以在收到响应前发出多个请求。虽然请求可以同时发送,但仍然按顺序接收响应。
-
分块传输编码:对于未知大小的内容,允许数据分块传输,不需要在开始时就知道内容的长度。
-
请求队头阻塞(Head-of-line blocking):尽管支持管道化,多个请求仍然会在同一连接上按顺序处理,导致“队头阻塞”问题。
-
示意图
Client Server
|----Request 1---->|
|<---Response 1---|
|----Request 2---->|
|<---Response 2---|
(可以重用连接,等待响应完成)
HTTP2.0
-
二进制协议:与HTTP/1.x的文本协议不同,HTTP/2采用了二进制协议,能够更高效地进行解析和传输。
-
多路复用(Multiplexing):允许多个请求和响应同时通过同一TCP连接进行处理,并且不再需要顺序处理。每个请求和响应都被拆分成数据帧进行独立处理,大大减少了队头阻塞问题。
-
头部压缩:HTTP/2使用HPACK算法对HTTP头部进行压缩,从而减少了重复的头部信息传输,节省带宽。
-
流优先级:HTTP/2支持为请求设置优先级,从而优化资源分配,提高响应速度
-
示意图
Client Server
|----Request 1---->|
|----Request 2---->|
|<---Response 1---|
|<---Response 2---|
(多个请求和响应可以同时在同一个连接上传输)
PV、UV、IP的概念(重点)
PV(Page View)
- 访问量, 即页面浏览量或点击量,衡量网站用户访问的网页数量;在一定统计周期内用户每打开或刷新一个页面就记录1次,多次打开或刷新同一页面则浏览量累计。
- 点击一次或者刷新一次页面就计数一次
UV(Unique Visitor)
- 独立访客,统计1天内访问某站点的用户数(以cookie为依据);访问网站的一台电脑客户端为一个访客。可以理解成访问某网站的电脑的数量。网站判断来访电脑的身份是通过来访电脑的cookies实现的。如果更换了IP后但不清除cookies,再访问相同网站,该网站的统计中UV数是不变的。如果用户不保存cookies访问、清除了cookies或者更换设备访问,计数会加1。00:00-24:00内相同的客户端多次访问只计为1个访客。
- 每一个独立的设备、硬件就算一个UV
IP(Internet Protocol)
- 独立IP数,是指1天内多少个独立的IP浏览了页面,即统计不同的IP浏览用户数量。同一IP不管访问了几个页面,独立IP数均为1;不同的IP浏览页面,计数会加1。 IP是基于用户广域网IP地址来区分不同的访问者的,所以,多个用户(多个局域网IP)在同一个路由器(同一个广域网IP)内上网,可能被记录为一个独立IP访问者。如果用户不断更换IP,则有可能被多次统计。
- 公网IP地址
本文来自博客园,作者:丁志岩,转载请注明原文链接:https://www.cnblogs.com/dezyan/p/18784450

浙公网安备 33010602011771号