HTTP协议
一、HTTP概述
默认端口是80
HTTP超文本传输协议:
-
传输:网站的数据如何传递给用户
-
超文本:文本、图片、视频
-
用户打开网站后:网站如何传递给用户
-
专业名字:数据请求与响应
请求request:打开网站,访问网站
响应response: 网站显示出,返回给你想要的内容
#> 是请求, <是响应
[root@web01 ~]# curl -v baidu.com
* About to connect() to baidu.com port 80 (#0)
* Trying 39.156.66.10...
* Connected to baidu.com (39.156.66.10) port 80 (#0)
> GET / HTTP/1.1
> User-Agent: curl/7.29.0
> Host: baidu.com
> Accept: */*
>
< HTTP/1.1 200 OK
< Date: Wed, 08 Feb 2023 11:28:38 GMT
< Server: Apache
< Last-Modified: Tue, 12 Jan 2010 13:48:00 GMT
< ETag: "51-47cf7e6ee8400"
< Accept-Ranges: bytes
< Content-Length: 81
< Cache-Control: max-age=86400
< Expires: Thu, 09 Feb 2023 11:28:38 GMT
< Connection: Keep-Alive
< Content-Type: text/html
<
<html>
<meta http-equiv="refresh" content="0;url=http://www.baidu.com/">
</html>
* Connection #0 to host baidu.com left intact
#request是请求 response是响应
[root@web01 ~]# wget --debug www.baidu.com
DEBUG output created by Wget 1.14 on linux-gnu.
URI encoding = ‘UTF-8’
Converted file name 'index.html' (UTF-8) -> 'index.html' (UTF-8)
Converted file name 'index.html' (UTF-8) -> 'index.html' (UTF-8)
--2023-02-08 19:29:26-- http://www.baidu.com/
Resolving www.baidu.com (www.baidu.com)... 110.242.68.4, 110.242.68.3
Caching www.baidu.com => 110.242.68.4 110.242.68.3
Connecting to www.baidu.com (www.baidu.com)|110.242.68.4|:80... connected.
Created socket 3.
Releasing 0x0000000000831a10 (new refcount 1).
---request begin---
GET / HTTP/1.1
User-Agent: Wget/1.14 (linux-gnu)
Accept: */*
Host: www.baidu.com
Connection: Keep-Alive
---request end---
HTTP request sent, awaiting response...
---response begin---
HTTP/1.1 200 OK
Content-Length: 2381
Content-Type: text/html
Server: bfe
Date: Wed, 08 Feb 2023 11:29:26 GMT
---response end---
200 OK
Registered socket 3 for persistent reuse.
Length: 2381 (2.3K) [text/html]
Saving to: ‘index.html.1’
100%[===================================================================================================================>] 2,381 --.-K/s in 0s
2023-02-08 19:29:26 (262 MB/s) - ‘index.html.1’ saved [2381/2381]
二、 HTTP协议版本
http1.0 | http1.1 | http2.0 | http3.0 | |
---|---|---|---|---|
特点 | 短连接,每次请求都需要重复建立断开连接 | 加入长连接功能 | 增加并发,访问更快 | 基于upd,访问更快 |
占用服务端资源 | keepalive功能 网站响应后不会立刻断开,保留下 这个连接 |
应用于流媒体 | ||
是否加密 | http 不加密的 https 加密的 |
默认基于https | ||
基于tcp/udp | tcp | tcp | tcp | udp |
三、 HTTP协议详解
1. HTTP请求
1.1 概述
[root@web01 ~]# wget --debug www.baidu.com
---request begin---
GET / HTTP/1.1 #请求起始行:做什么 找什么
User-Agent: Wget/1.14 (linux-gnu) #请求头 自报家门
Accept: */*
Host: www.baidu.com # 指定网站
Connection: Keep-Alive
#(空行)分割请求主体
---request end--- #请求报文主体,一般是上传才有
1.2 请求报文起始行行
-
请求方法:用于指定客户端如何访问服务端(下载,上传,查看服务端信息)
常用的请求方法 说明 GET 下载(大部分请求) POST 上传(上传文件内容,登录) HEAD 类似与GET,仅仅输出响应的头部信息(查看服务端的信息,一般用于检查) #HEAD [root@web01 ~]# curl -v -I www.baidu.com * About to connect() to www.baidu.com port 80 (#0) * Trying 110.242.68.4... * Connected to www.baidu.com (110.242.68.4) port 80 (#0) > HEAD / HTTP/1.1 > User-Agent: curl/7.29.0 > Host: www.baidu.com > Accept: */* >
-
资源的位置(URI):这个资源在网站站点目录的哪个地方,叫什么名字
补充:
URI(统一资源标识符)
站点目录是用于存放网站代码的地方。
1.3 请求头
字段 | 含义 |
---|---|
User-Agent | 客户端代理(用什么工具访问网站),浏览器 |
Host | 表示访问的目标网站:域名或ip |
1.4 浏览器调试查看
浏览器的调试功能:DevTools
F12或Fn+F12查看"网络"部分即可.
2. HTTP响应
2.1 概述
---response begin---
HTTP/1.1 200 OK #HTTP响应起始行
Content-Length: 2381 #http响应头
Content-Type: text/html #
Server: bfe #
Date: Wed, 08 Feb 2023 11:29:26 GMT #
#空行(分隔)
---response end---
#响应报文的主体
2.2 响应报文起始行
- 协议与版本 HTTP/1.1
- 状态码:数字3位,用于描述服务端是否能找到或处理用户的请求 200 ok
2.3 响应头
字段 | 说明 |
---|---|
Server |
显示服务端使用的web服务器及版本 |
Content-Length | 大小 |
Content-Type | 媒体类型(文件类型) |
Location | 跳转之后的新的位置,跳转的时候才有 |
3. http协议状态码
状态码:错误提示,反映出服务端是否能够正常的处理用户请求
状态码 | 含义 |
---|---|
2xx | 表示正常 |
3xx | 表示需要进行跳转,表示正常 |
4xx | 表示异常,客户端问题 |
5xx | 表示异常,服务端问题 |
详细的状态码 | 说明 |
---|---|
200 | 访问正常 |
301 Moved Permanently | 永久跳转 |
302 Found或Moved Temporarily | 临时跳转 |
304 Not Modified | 浏览器缓存 |
403 Forbidden | 权限拒绝,权限问题或首页文件问题 |
404 Not Found | 文件找不到 |
500 Internal Error | 内部错误,Selinux开启 |
502 Bad Gateway | 网关错误,一般发生在负载中,请求发送到后面,后面无人处理,提示502 |
503 service temporarily unavailable | 服务临时不可用,后端负载异常,人为设置(升级) |
504 Gateway Time-out | 网关超时 |
四、衡量系统访问量指标
1.概述
指标 | 说明 |
---|---|
ip | 访问网站的独立ip数量,公网ip |
PV | 页面访问量Page view |
UV | 独立访客数量,接近于用户数量 Unique Vistor |
DAU | 每天的活跃用户的数量: 日活(日活跃用户) |
MAU | 月活(月活跃用户) |