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

相关推荐
小李独爱秋19 分钟前
计算机网络经典问题透视:如何探知无线AP的SSID与BSSID?
网络协议·计算机网络·wireshark·信息与通信
..过云雨2 小时前
五种IO模型与非阻塞IO
网络·网络协议·tcp/ip
源远流长jerry3 小时前
dpdk之kni处理dns案例
linux·网络·网络协议·ubuntu·ip
2501_915106324 小时前
当 Perfdog 开始收费之后,我重新整理了一替代方案
android·ios·小程序·https·uni-app·iphone·webview
db_murphy6 小时前
知识篇 | net.ipv4.ip_forward 参数
网络·网络协议·tcp/ip
Vect__6 小时前
TCP Socket编程详解
网络协议·tcp/ip·php
2501_915918417 小时前
中小团队发布,跨平台 iOS 上架,证书、描述文件创建管理,测试分发一体化方案
android·ios·小程序·https·uni-app·iphone·webview
B2_Proxy7 小时前
如何使用代理服务解决“您的 ASN 被阻止”错误:全面策略分析
网络·爬虫·网络协议·tcp/ip·安全·代理模式
Hello.Reader8 小时前
Rocket 0.5 响应体系Responder、流式输出、WebSocket 与 uri! 类型安全 URI
websocket·网络协议·安全·rust·rocket
JoySSLLian8 小时前
IP SSL证书是什么?为何它是保障IP通信安全的关键?
网络协议·tcp/ip·https·ssl