HTTP和HTTPS-八股

文章目录

HTTP和HTTPS

HTTP的请求报文和响应报文

都是 首行-请求/响应头-空行-正文 结构

请求报文

首行

GET URL http/1.1

请求方法 请求资源地址 http版本号

请求头

每行都是一个键值对, 中间由":"分隔

是http标准规定的字段, 有具体的含义

也允许用户添加自定义的字段

常见的有

host 访问的域名

authorization 用户认证凭证信息, 比如token

user-agent 包含了用户客户端, 浏览器等信息

空行

正文

有些请求有, 有些没有

响应报文

首行

http/1.1 200

版本号 状态码

响应头

content-type 传输数据的媒体类型

空行

正文

服务器返回客户端的信息

通常是 html/css/js/json/图片/音频等

HTTP有哪些请求方式

最常见的是POST, GET, 其他还要PUT, DELETE

他们有具体的语义

POST是提交资源

GET是获取资源

PUT是更新资源

DELETE是删除资源

GET和POST请求的区别

他们没有实际的区别, GET能用的, POST也能用, 反之亦然

使用习惯上有区别

语义区别:GET是向服务器获取资源, POST是向服务器提交资源

传输数据: GET是通过query string 把自定义数据提交给服务器, POST是通过body

幂等性:GET通常是幂等的,就是多次请求返回的结果一样, POST没有这个要求

HTTP的状态码

2XX 成功

200 OK

3XX 重定向

301 Moved Permanently 永久重定向

302 Found 临时重定向 就是这一次转到另一个URL, 下一次访问还是原地址, 例如登陆时跳转到登陆页面

4XX 客户端错误

401 Unauthorized 未认证, 需要验证用户身份或者凭证无效

403 Forbidden 用户通过认证, 但没有权限

404 Not Found 访问资源在服务器上不存在

5XX 服务端错误

501 Internal Server Error 服务器发生了未预期的内部错误

504 Gateway Timeout 连接服务器超时

HTTP和HTTPS的区别

一个是明文, 一个是加密

一个是在TCP三次握手之后就可以传输, 一个还要在TCP三次握手后增加SSL/TLS握手

一个端口是80, 一个是443

HTTPS需要向CA机构申请证书来验证服务器的身份是可信的

HTTPS的工作原理(HTTPS建立连接的过程)

  1. 客户端向服务端发送建立HTTPS请求
  2. 服务端发给客户端公钥证书
  3. 客户端通过CA机构验证证书的合法性, 并验证证书的有效性
  4. 验证通过后, 生成一对随机对称加密密钥, 通过公钥加密发给服务端
  5. 服务端通过私钥解密对称加密密钥, 此时客户端服务端都拥有相同密钥
  6. 两方用对称加密密钥加密和解密数据进行通信

HTTP的Keep-Alive是什么?TCP 的 Keepalive 和 HTTP 的 Keep-Alive 是一个东西吗?

HTTP的连接建立是通过 TCP建立资源-HTTP请求资源-响应资源-断开连接

但是每次建立连接只能响应一次资源

HTTP的keep-alive实现同一个TCP来发送和接收多个HTTP请求和应答, 减少建立和释放的开销, 这就是HTTP的长连接

通过设置HTTP头 Connection:keep-alive来实现

TCP的keep-alive是内核实现的, 称为TCP保活机制, 是一种用于在TCP连接上检测空闲连接状态的机制

在TCP连接建立后, 如果一段事件没有任何数据传输, TCP keep-alive会发送探测包检查连接是否有效

相关推荐
再学一点就睡9 小时前
前端网络实战手册:15个高频工作场景全解析
前端·网络协议
布谷歌14 小时前
开发笔记:如何消除秘钥数据对RPC负荷、日志、系统安全的伤害?
网络·笔记·网络协议·rpc
Voyager_418 小时前
OS八股:HTTP 与 WebSocket 的通信模型差异 —— 理解等待、轮询、阻塞与全双工
websocket·网络协议·http
(Charon)18 小时前
【DPDK实战】编写一个高性能 UDP 抓包程序
网络·网络协议·udp
克里斯蒂亚诺更新18 小时前
https写一个定位当前位置获取经纬度的H5页面
css·网络协议·https
北京耐用通信19 小时前
耐达讯自动化Profibus总线光纤中继器:破解石油化工分析仪器通讯难题
网络·人工智能·科技·物联网·网络协议·自动化·信息与通信
e***985720 小时前
TCP/IP协议栈全解析:从基础到未来
网络·网络协议·tcp/ip
乾元20 小时前
构建你的个人「网络 AI 实验室」——硬件、模拟器与数据集清单
运维·网络·人工智能·网络协议·架构
深圳市恒讯科技21 小时前
在带有HTTPS的VPS上安装和部署n8n的最简单方法
网络协议·http·https