网络--会话层表示层应用层
Posted shael
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了网络--会话层表示层应用层相关的知识,希望对你有一定的参考价值。
HTTP 特征
基于TCP/IP
HTTP:80端口 HTTPS:443端口
无连接状态
状态行+请求头+消息主体
状态行+响应头+响应正文
HTTP/1.1引入的两大功能
keep-alive
pipling
keep-alive
HTTP/1.0中,默认使用短连接
HTTP/1.1起,默认使用长连接
使用Transfer-Encoding或Content-Length判断一次连接是否结束
keep-alive唯一能保证的就是当连接被关闭时你能得到一个通知
keep-alive解决的是频繁通信导致的连接冗余(TCP握手),不维持状态
POST与GET
POST四种数据类型
application/x-www-form-urlencoded
multipart/form-data
application/json
text/xml
https://imququ.com/post/four-ways-to-post-data-in-http.html
POST 的优势
GET是幂等的,POST则不然(HTTP方法的幂等性是指一次和多次请求某一个资源应该具有同样的副作用)
POST的安全性更高,体现在请求内容不在URL中,而在BODY里面,这样的好处有:
1. 不会残留历史记录
2. 可以对数据进行编码
注:HTTP本身没有加密功能,所以POST也没有,但是在HTTPS中,BODY内容就可以被加密了,所以加密是POST+SSL协同的效果。
条件 GET
客户端将本地缓存的修改时间发送给服务器检查,如果没有更新则返回304 Not Modified
cookie与session
cookie是server发送给client的一小段信息,client请求时可以读取该信息发送到server,进而进行用户的识别
session是服务器维护的一个对象,用于标识一哥client,其实现依赖于cookie
cookie-session是一种维持状态的方法
HTTP Proxy
以中间人模式工作,回适当改写请求,整个通信过程对代理可见
代理是中间人,使用代理的主机发出的IP报文的目的IP是代理的,但是会在应用层里明确告诉代理,自己真实需求是什么
HTTP tunnel
通过CONNECT报文,使得Proxy直接转发请求,不再改写请求
隧道通常有两个IP头,外部IP用于在Internet传输,内部IP用于隧道传输
HTTP gateway
二层目的MAC地址是网关的,三层目的IP是服务器的
普通代理
HTTP 客户端向代理发送请求报文,代理服务器需要正确地处理请求和连接(例如正确处理 Connection: keep-alive),同时向服务器发送请求,并将收到的响应转发给客户端
正向代理:客户端建立的代理,如PAC
反向代理:服务器建立的代理
隧道代理
HTTP 客户端通过 CONNECT 方法请求隧道代理创建一条到达任意目的服务器和端口的 TCP 连接,并对客户端和服务器之间的后继数据进行盲转发
https://imququ.com/post/web-proxy.html
高并发架构
client
dns
反向代理(nginx)
webserver
service
database
https://zhuanlan.zhihu.com/p/24830094
SSL/TLS
四个协议
Record Protocol
Handshake Protocol
Alert Protocol
Application Protocl
四次握手
Client Hello
Server Hello--Server Hello Done
Client Key Exchange
Change Cipher Spec
PreMaster secret
Client Hello、Server Hello、Client Key Exchange分别产生一个随机数,最后一个随机数即为PreMaster secret。
三个随机数最终生成通信使用的对称密钥。
中间人攻击
SSLSniff:攻击者在网关截获SSL会话,替换服务器公钥证书,将公钥PKey换成自己的公钥PKey,欺骗客户端(证书认证是个问题)
SSLStrip:Attacker在客户端与服务器建立连接时,在Attacker与服务器之间形成HTTPS连接,而在客户端与Attacker之间形成HTTP连接
防御方法:
1. 公钥基础建设PKI
2. 延迟测试
https://elliotsomething.github.io/2016/12/22/HTTPS%E4%B8%AD%E9%97%B4%E4%BA%BA%E6%94%BB%E5%87%BB%E5%8F%8A%E9%98%B2%E5%BE%A1/
refs:
HTTP面试知识点 https://hit-alibaba.github.io/interview/basic/network/HTTP.html
http://www.ruanyifeng.com/blog/2014/02/ssl_tls.html
https://segmentfault.com/a/1190000002554673
以上是关于网络--会话层表示层应用层的主要内容,如果未能解决你的问题,请参考以下文章