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会发送探测包检查连接是否有效

相关推荐
不可能的是1 天前
前端 SSE 流式请求三种实现方案全解析
前端·http
Jony_3 天前
高可用移动网络连接
网络协议
chilix3 天前
Linux 跨网段路由转发配置
网络协议
gihigo19985 天前
基于TCP协议实现视频采集与通信
网络协议·tcp/ip·音视频
古译汉书5 天前
【IoT死磕系列】Day 7:只传8字节怎么控机械臂?学习工业控制 CANopen 的“对象字典”(附企业级源码)
数据结构·stm32·物联网·http
白太岁5 天前
通信:(5) 电路交换、报文交换与分组交换
运维·服务器·网络·网络协议
EasyGBS5 天前
国标安全升级:GB28181平台EasyGBS支持GB35114协议的应用场景与核心优势
网络协议·安全·gb28181·gb35114
凯酱5 天前
Windows防火墙入站规则IP白名单
windows·网络协议·tcp/ip
稻草猫.5 天前
TCP与UDP:传输层协议深度解析
笔记·后端·网络协议
赤月奇5 天前
https改为http
数据挖掘·https·ssl