http,https协议解析

发布于:2022-12-24 ⋅ 阅读:(566) ⋅ 点赞:(0)

1 简介

超文本传输协议(Hypertext Transfer Protocol,HTTP)
HTTPS(Hypertext Transfer Protocol over Secure Socket Layer)

2 http请求与响应

http默认使用80端口,https默认使用443端口.

  • 客户端请求
序号 组成部分 描述
1 请求行 描述客户端的请求方式(GET,POST…),请求资源名称(https://xxxx.xxx.xxx), http协议版本号
2 请求头 客户端请求的服务器主机名,客户端机器环境信息
3 空行 换行
4 请求数据 请求体中携带的参数(form-data,json数据)
  • 服务器响应
序号 组成部分 描述
1 状态行 服务器响应状态
2 消息报头 服务器响应日期,响应数据类型,响应数据长度
3 空行 换行
4 响应正文 服务器返回的数据(html,css,json)
  • 特点
    短连接.连接一次,发送一个数据包,然后断开连接,客户端连接数量承载能力强,节省服务器资源(长连接,每个客户端,消耗部分服务器资源).
    无状态.服务器不感知客户端状态,数据传输结束后,客户端,断开与服务器连接.

2.1 客户端请求

  • 请求行
GEThttps://bkssl.bdimg.com/static/wiki-lemma/pkg/wiki-lemma_c03dab6.css
[HTTP/2.0 200 OK 0ms]
请求网址:https://bkssl.bdimg.com/static/wiki-lemma/pkg/wiki-lemma_c03dab6.css
请求方法:GET
状态码:
200
版本:HTTP/2.0
  • 请求头
Host: bkssl.bdimg.com
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/68.0
Accept: text/css,*/*;q=0.1
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate, br
Connection: keep-alive

2.2 服务器响应

  • 响应头
HTTP/1.1 200 OK
Bdpagetype: 3
Bdqid: 0x8bc1f76f000818e3
Cache-Control: private
Ckpacknum: 2
Ckrndstr: f000818e3
Connection: Keep-Alive
Content-Encoding: gzip
Content-Type: text/html;charset=utf-8
Date: Sun, 13 Oct 2019 10:08:10 GMT
Server: BWS/1.1
Set-Cookie: delPer=0; path=/; domain=.baidu.com
Set-Cookie: BD_CK_SAM=1;path=/
Set-Cookie: PSINO=6; domain=.baidu.com; path=/
Set-Cookie: BDSVRTM=10; path=/
Set-Cookie: H_PS_PSSID=1445_21080_29720_29567_29221; path=/; domain=.baidu.com
Strict-Transport-Security: max-age=172800
Vary: Accept-Encoding
X-Ua-Compatible: IE=Edge,chrome=1
Transfer-Encoding: chunked
access-control-allow-origin: *

2.3 通信

http协议是明文通信,客户端传输的数据可以通过抓包的方式获取,由于明文通信,所以,所有客户端传输的数据均可被解析并劫持,数据安全性较低.

  • 正常通信
    在这里插入图片描述
图2.1 http正常通信
  • 异常通信

在这里插入图片描述

图2.2 http异常通信

3 https

3.1 https简介

http+SSL/TLS即http协议的加密通信.服务端和客户端的信息传输都会通过TLS进行加密,传输的数据都是加密后的数据.

3.2 https通信过程

  • 过程图

在这里插入图片描述

图3.1 https通信
  • 过程说明

3.3 公钥和私钥

  • 公钥:加密
  • 私钥:解密

4 状态码

4.1 消息状态码

序号 状态码 描述
1 100
2 101
3 102

4.2 请求成功状态码

序号 状态码 描述
1 200
2 201
3 202
4 203
5 204
6 205
7 206
8 207

4.3 重定向状态码

序号 状态码 描述
1 300
2 301
3 302
4 303
5 304
6 305
7 306
8 307

4.4 请求错误状态码

序号 状态码 描述
1 400
2 401
3 402
4 403
5 404
6 405
7 406
8 407
9 408
10 409
11 410
12 411
13 412
14 413
15 414
16 415
17 416
18 417
19 418
20 421
21 422
22 423
23 424
24 425
25 426
26 449
27 451

4.5 服务器状态码

序号 状态码 描述
1 500
2 501
3 502
4 503
5 504
6 505
7 506
8 507
9 509
10 510
11 600

5 小结

暂无


【参考文献】
[1]https://www.runoob.com/http/http-messages.html
[2]https://www.cnblogs.com/haiyan123/p/7777924.html
[3]https://www.runoob.com/w3cnote/http-vs-https.html
[4]https://blog.51cto.com/11883699/2160032
[5]https://www.jb51.net/article/99075.htm
[6]https://www.cnblogs.com/RoyalBlue/p/9835679.html
[7]https://blog.csdn.net/qq_37049781/article/details/84837342
[8]https://www.jianshu.com/p/79e341a5a81a
[9]https://blog.csdn.net/zhengzhaoyang122/article/details/82184072


网站公告

今日签到

点亮在社区的每一天
去签到