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地址
posted @ 2025-03-21 08:40  丁志岩  阅读(15)  评论(0)    收藏  举报