HTTP协议
HTTP基础介绍
#HTTP 全称: Hyper Text Transfer Protocol 中文名:超文本传输协议将超文本文档从一台主机(Web服务器)传输到另一台主机(浏览器)的应用层协议,以实现超链接的功能。
#URL 即统一资源定位符(Uniform Resource Locator),用来唯一地标识万维网中的某一个文档。URL 由协议、主机和端口(默认为80)以及文件名三部分构成
https://blog.csdn.net/qq_63834691
# 协议 # 主机:端口 # 文件名
协议 http:// https://
主机端口 blog.csdn.net/
文件名 qq_63834691
HTTP协议版本
三次握手和四次挥手
Http1.0 | Http1.1 | Http2.0 | Http3.0 | |
---|---|---|---|---|
特点 | 短连接,每次请求都要重复建立断开连接 | 加入长连接功能 | 增加并发,访问更快 | 基于udp协议,应用于流媒体 |
占用服务端资源 | keepalive功能(网站响应后不会立刻断开连接,会保留这个连接) | 默认为Https | ||
是否加密 | http不加密https会加密 | |||
基于tcp/udp | tcp | tcp | tcp | udp |
HTTP协议详解
- HTTP请求报文
- HTTP响应报文
HTTP工作原理
具体过程详解
https://blog.csdn.net/qq_63834691
1.浏览器分析url
https://blog.csdn.net/qq_63834691
2..浏览器向DNS请求分析IP地址
- 本地DNS
如果本地DNS里有blog.csdn.net 把IP返回给浏览器
如果没有就往DNS服务器做解析
- DNS服务器 13根域
.com
.cn
.org
.xyz
.net
.gov
.edu
dns的递归查找和迭代查找
3.浏览器收到了IP地址之后,开始建立连接(三次握手)
tcp三次握手和四次挥手
4.浏览器向web服务器发送GET请求
5.web服务器接收到了GET之后 返回给浏览器
-
请求方法:用于指定客户端如何访问服务器端
常见的请求方法 说明 GET 下载(大部分请求) POST 上传(上传文件内容、登陆) HEAD 类似于GET,仅仅输出响应的头部信息(查看服务器端的信息,一般用于检查)
#案例:测试www.baidu.com是否可以用http协议访问
#发出HEAD请求,查看服务端信息,服务端是否可用
curl -I www.baidu.com
[root@web01 code]# curl -I www.baidu.com
HTTP/1.1 200 OK
Accept-Ranges: bytes
Cache-Control: private, no-cache, no-store, proxy-revalidate, no-transform
Connection: keep-alive
Content-Length: 277
Content-Type: text/html
Date: Wed, 22 May 2024 07:37:19 GMT
Etag: "575e1f60-115"
Last-Modified: Mon, 13 Jun 2016 02:50:08 GMT
Pragma: no-cache
Server: bfe/1.0.8.18
6.浏览器确保接收到了
7.断开连接(四次挥手)
8.web显示网页按F12调试
HTTP状态码
状态码 | 含义 |
---|---|
2xx | 表示正常 |
3xx | 表示需要跳转,正常 |
4xx | 表示异常,客户端问题 |
5xx | 表示异常,服务器端问题 |
200 页面正常访问
301 永久重定向
302 临时重定向
304 浏览器的缓存
307 内部重定向
400 客户端错误
401 认证失败
403 权限拒绝 1.权限问题 2.首页文件问题
404 页面找不到,一般辅助错误日志排查
500 服务器的内部问题(代码问题:selinux开启 )一般辅助错误日志排查
502 服务器过载 访问的评率过快,请求发送导后面无人处理
503 服务临时不可用,后端负载异常,或人为设置(网站升级)
504 后端服务超时
问题 2.首页文件问题
404 页面找不到,一般辅助错误日志排查
500 服务器的内部问题(代码问题:selinux开启 )一般辅助错误日志排查
502 服务器过载 访问的评率过快,请求发送导后面无人处理
503 服务临时不可用,后端负载异常,或人为设置(网站升级)
504 后端服务超时