谈谈HTTPS
最近正好在看极客时间的「趣谈网络协议」,目前已经看了大半部分,对于之前 HTTPS 概念比较模糊的地方现在都差不多大致了解了,于是正好选择来记录下。
HTTPS
HTTPS 是在原来的 HTTP 协议基础上进行加密通信,所以本质上 HTTPS 还是基于 TCP/IP 协议进行数据传输,而一个标准的 TCP/IP 协议族中,如下图
HTTPS 的 TLS/SSL 层就工作在应用层和运输层之间。
最近正好在看极客时间的「趣谈网络协议」,目前已经看了大半部分,对于之前 HTTPS 概念比较模糊的地方现在都差不多大致了解了,于是正好选择来记录下。
HTTPS 是在原来的 HTTP 协议基础上进行加密通信,所以本质上 HTTPS 还是基于 TCP/IP 协议进行数据传输,而一个标准的 TCP/IP 协议族中,如下图
HTTPS 的 TLS/SSL 层就工作在应用层和运输层之间。
在发送请求的是时候最需要注意的是 Content-Type
,因为不同的 Type 对应的则是不同类型的数据,今天正好没什么事情,所以来总结下:
这种类型在最近几年用的比较多,主要是由于现在前后端分离,数据的请求方式可以由以前的表单提交逐渐偏向于Json的这种格式。所以这种 application/json
格式的数据也就越来越多了。
这种数据现在一般使用的较多。
例如,在使用Jquery的时候如果没有指定dataType的话,在后端可以设置 Content-Type 为 application/json 也是可行的。
用 Java 则是
1 | response.setHeader("Content-Type","application/json"); |
今天突然想知道在访问一个网站的时候那些请求头是在何时被加上去的。例如访问百度的时候,host
和refer
或者其他的字段是在七层模型的哪一层被加入的。
在这里尝试了下百度的抓包,但是百度的是是HTTPS的连接,导致一直找不到那个HTTP连接,所以还是放弃了,但是随后又找了一个非HTTPS的网站,进行抓包,然后测试了下,发现可以
这是用wireshark抓取的结果:
却发现这里多了一个Hypertext Transfer Protocol
,在这里的话因为是GET请求,所以准备用POST请求再次尝试:
发现其实内容都差不多,那也就证明了这些请求头都是在应用层被添加进去的。
那么在这些抓包中可以看到他的层次是5层,而并非是7层模型。在这里的的五层模型分别是物理层
,数据连续层
,网络层
,传输层
,应用层
。相较于7层的OSI模型少了会话层
和表示层
。