本文最后更新于82 天前,其中的信息可能已经过时,如有错误请发送邮件到big_fw@foxmail.com
一、今日核心认知(最重要)
记一句:
HTTP 是浏览器和服务器交流的“语言”。
例如:
你打开:
浏览器其实在说:
GET / HTTP/1.1
服务器返回:
HTTP/1.1 200 OK
所以:
互联网本质:
浏览器 ←HTTP→ 服务器
二、HTTP 是什么
HTTP:
HyperText Transfer Protocol
超文本传输协议。
作用
用于:
浏览器和服务器传输数据。
可以传什么
HTML
JSON
图片
视频
CSS
JS
HTTP 特点
1)基于 TCP
所以:
HTTP 稳定可靠。
2)无状态
服务器默认不知道你是谁。
所以:
需要:
Cookie
Session
Token
三、HTTP 请求长什么样(超核心)
浏览器发送:
GET /index.html HTTP/1.1
Host: www.xxx.com
User-Agent: Chrome
解释
GET
请求方法。
/index.html
请求资源路径。
HTTP/1.1
协议版本。
Host
访问哪个网站。
User-Agent
浏览器信息。
四、GET 和 POST(面试高频)
GET
特点:
获取数据
参数在URL
通常用于查询
例如:
/search?q=redis
POST
特点:
提交数据
参数在请求体
通常用于登录/上传
面试标准回答
GET
GET 通常用于获取资源。
POST
POST 通常用于提交数据。
五、HTTP 状态码(超级高频)
这个必须熟。
200
成功。
301 / 302
重定向。
403
禁止访问。
通常:
权限问题
404
资源不存在。
例如:
路径错误
500
服务器内部错误。
通常:
代码异常
502(特别重要)
Bad Gateway。
通常:
Nginx 找不到后端
504
后端超时。
六、DNS(互联网电话簿)
为什么需要 DNS
因为人记不住:
104.18.xx.xx
所以:
有:
openai.com
bilibili.com
github.com
DNS:
负责:
域名 → IP
转换。
浏览器访问网站第一步
其实是:
DNS 解析。
查看 DNS
nslookup openai.com
或者:
dig openai.com
七、HTTPS(特别重要)
HTTP 问题
HTTP:
明文传输。
意味着:
别人能偷看。
例如:
密码
Cookie
支付信息
HTTPS 是什么
HTTP + SSL/TLS 加密。
作用
加密
防篡改
身份验证
为什么有小锁
因为:
启用了 HTTPS。
Nginx 为什么经常配 HTTPS
因为:
现代网站必须安全。
八、浏览器访问网站全过程(升级版)
以后面试会大量问。
Step1 输入网址
例如:
https://openai.com
Step2 DNS解析
找到服务器 IP。
Step3 TCP 三次握手
建立连接。
Step4 HTTPS 握手
SSL/TLS 加密协商。
Step5 发送 HTTP 请求
例如:
GET /
Step6 Nginx 接收请求
可能:
反向代理
负载均衡
Step7 应用服务器处理
例如:
Java
Go
Python
Step8 Redis / MySQL
查询数据。
Step9 返回数据
服务器返回:
HTML
JSON
图片
Step10 浏览器渲染
最终显示网页。
九、今天必须实操(重点)
1)curl 网站
curl https://www.baidu.com
2)查看响应头
curl -I https://www.baidu.com
3)DNS 查询
nslookup github.com
或者:
dig github.com