linux之http协议

HTTPS协议

  • 什么是http
  • http请求头和响应头
  • http请求方法
  • http状态码
  • PV UV IP

什么是http

http是超文本传输协议(Hypertext Transfer Protocol),是一种用于在 客户端(通常是浏览器)和 服务器 之间传输数据的协议。它是 Web(万维网)通信的基础协议,广泛应用于访问网页和与 Web 服务交互。位于OSI七层模型中的应用层,通过TCP建立连接。

http的工作原理

HTTP 协议采用 请求/响应模式,即 客户端发送请求服务器处理请求并返回响应。每一次 Web 页面加载、图片显示、或者其他资源的获取,都是一个 HTTP 请求和响应的过程。

HTTP 请求和响应的组成

请求行(Request Line):包含请求方法、请求的 URL 和 HTTP 版本。
请求头(Request Headers):包括有关客户端信息(如浏览器类型、请求的语言、接受的内容类型等)的头部字段。
请求体(Request Body):请求体一般用于包含数据,比如在 POST 请求中提交表单数据。

http版本发展

特性 http/0.9
(1991年)
http/1.0
1996年)
http/1.1
(1997年)
http/2.0
(2015年)
http/3.0)
Quick UDP Internet Connections(基于UDP协议 --建设中)
协议类型 文本协议 文本协议 文本协议 二进制协议 二进制协议
连接管理 每个请求独立连接 每个请求独立连接 持久连接 多路复用 基于 QUIC 的多路复用
头部压缩 HPACK压缩 内建压缩
多路复用 有(管道化) 完全支持 完全支持
服务器推送 支持 支持
加密 可选(SSL/TLS) 可选(SSL/TLS) 强制(内建TLS) 强制(QUIC内建TLS)
低延迟 更高

http请求分解

HTTP请求
GET /index.html HTTP/1.1
Host: 10.0.0.1
User-Agent: Mozilla/5.0
Accept: text/html,application/xhtml+xml

1. 请求行
# GET 请求方法
# /index.html 请求资源路径
# HTTP/1.1 请求协议版本

2. 请求头
Host
UA
Accept

3. 请求体 POST包
username=admin&password=123456
HTTP响应
HTTP/1.1 200 OK
Date: Tue, 10 Aug 2021 16:00:00 GMT
Server: Apache/2.4.41 (Unix)
Content-Type: text/html; charset=UTF-8
Content-Length: 1256

<html>
  <head><title>Example Page</title></head>
  <body>
    <h1>Welcome to Example</h1>
  </body>
</html>

1. 状态行
# HTTP/1.1 请求协议版本
# 200 OK 状态码 表示成功

2. 响应头
# Date: Tue, 10 Aug 2024 16:00:00 GMT:响应的日期和时间 GMT格林威治时间;UTC世界统一时间 UTC+8 中国时间CST
# Server: Apache/2.4.41 (Unix):返回请求的服务器软件。
# Content-Type: text/html; charset=UTF-8:返回内容的类型(HTML 格式)。
# Content-Length: 1256:返回内容的长度(字节数)。

3. 响应体
html内容

http请求方法

1.GET:
用于请求资源(如网页、图片、文件等),数据通常通过 URL 查询字符串传递

2.POST:
用于提交数据,通常用于表单提交或上传文件。数据被包含在请求体中

3.PUT:
用于更新资源。客户端向服务器发送完整的资源数据,用于替换服务器上的现有资源

4.DELETE:
用于删除指定的资源

5.HEAD:
类似于 GET,但服务器只返回响应头,不返回实际的内容。用于获取资源的元数据

6.PATCH:
用于对资源进行部分更新,通常与 PUT 配合使用,但 PATCH 仅修改资源的一部分

7.OPTIONS:
用于获取目标资源的通信选项,客户端可以通过此方法知道服务器支持哪些 HTTP 方法

8.TRACE: 
用于回显服务器收到的请求,主要用于诊断

9.CONNECT: 
用于建立到服务器的隧道,通常用于HTTPS连接


HTTP/1.0: 定义了GET、POST和HEAD方法。
HTTP/1.1: 引入了PUT、DELETE、OPTIONS、TRACE和CONNECT方法。
HTTP/2: 基本上沿用了HTTP/1.1的方法,但对协议进行了优化,提高了传输效率和速度。
HTTP/3: 继续使用HTTP/2的方法,主要改进了传输层,使用UDP代替TCP以提高传输速度和可靠性。

http状态码

#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:网关或代理服务器没有及时从上游服务器收到请求。

PV UV IP

PV(Page View)访问量, 即页面浏览量或点击量,衡量网站用户访问的网页数量;在一定统计周期内用户每打开或刷新一个页面就记录1次,多次打开或刷新同一页面则浏览量累计。
PV: 点击一次或者刷新一次页面

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: 公网IP地址
posted @ 2024-12-08 13:10  被时光移动的城市  阅读(35)  评论(0编辑  收藏  举报