网络--会话层、表示层、应用层

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

原文地址:https://www.cnblogs.com/shaellancelot/p/9021887.html

时间: 2024-08-11 15:44:49

网络--会话层、表示层、应用层的相关文章

Web开发中的网络知识(应用层)

一.网络分层 二.应用层协议--HTTP.DNS和SSH 2.1 http协议 1. 定义:超文本传输协议( Hyper Text Transfer Protocol ),是用于传输诸如HTML的超媒体文档的应用层协议.它被设计用于Web浏览器和Web服务器之间的通信,但也可以用于其它目的. HTTP遵循经典的客户端-服务端模型,客户端打开一个连接以发出请求,然后等待收到服务器端的响应. HTTP是无状态协议,意味着服务器不会在两个请求之间保留任何数据(状态).虽然通常基于TCP / IP层,但

iOS网络2——NSURLSession

原文在此 一.整体介绍 NSURLSession在2013年随着iOS7的发布一起面世,苹果对它的定位是作为NSURLConnection的替代者,然后逐步将NSURLConnection退出历史舞台.现在使用最广泛的第三方网络框架:AFNetworking.SDWebImage等等都使用了NSURLSession.作为iOS开发人员,应该紧随苹果的步伐,不断的学习,无论是软件的更新.系统的更新.API的更新,而不能墨守成规. Session翻译为中文意思是会话,我们知道,在七层网络协议中有物理

网络基础tcp/ip协议一

计算机网络: 硬件方面:通过线缆将网络设备和计算机连接起来 软件方面:操作系统,应用软件,应用程序通过通信线路互连 实现资源共享,信息传递 计算机网络的功能: 数据通信 资源共享 增加可靠性 提高系统处理能力 网络协议与标准:一组控制数据通信的规则 协议三要素: 语法 语义 同步 标准;一致同意的规则可以理解为标准 ISO   (国际标准化组织) ANSI  (美国国家标准局) ITU-T (国际电信联盟-电信标准部) IEEE  (电气和电子工程师学会) WAN与LAN 广域网(WAN) 范围

网络知识 -- 第二部

网络的层次说明 核心层:核心层的功能主要是实现骨干网络时间的优化传输,骨干层设计任务的重点通常是冗余能力,可靠性和高速的传输. 汇聚层:汇聚层是楼群或小区的信息汇聚点,是连接介入层和核心层的网络设备,为接入层提供数据的汇聚\传输\管理\分发处理.汇聚层为接入层提供基于策略的连接,如地址合并,协议过滤,路由服务,认证管理等,通过网络划分(如VLAN)与网络隔离可以防止某些网段的问题蔓延和影响到核心层,汇聚层同时也可以提供接入层虚拟网之间的互连,控制和限制接入层对核心层的访问,保证核心层的安全和稳定

网络编程——基本概念

1.什么是计算机网络? 把分布在不同地理区域的计算机与专门的外部设备用通信线路互连成一个规模大.功能强的网络系统,从而使众多的计算机可以方便地互相传递信息,共享硬件.软件.数据信息等资源. 2.计算机网络的主要功能 资源共享 信息传输与集中处理 均衡负荷与分布处理 综合信息服务(www/综合业务数字网络ISDN)等 3.网络通信协议 要使计算机连成的网络能够互通信息,需要对数据传输速率.传输代码.代码结构.传输控制步骤.出错控制等制定一组标准,这一组共同遵守的通信标准就是网络通信协议,不同计算机

计算机网络-网络层次结构

传统的网络层次结构是OSI七层模型,但在现实中采用的是TCP/IP协议. (一)OSI七层模型 (1)物理层 设备之间原始数据传输,数据格式比特流. (2)数据链路层 将原始比特流转换成逻辑传输数据,mac地址寻址,数据格式帧. (3)网络层 最复杂的一层,通信子网最高层.通过路由算法提供最佳传输路径.数据格式IP数据包. 数据链路层解决同一网络节点间数据传输,网络层解决不同子网间通信. (4)传输层 拆分数据包,提供端对端不同主机用户进程间传输数据,提供可靠或不可靠传输及流量控制,是连接通信子

Socket网络编程TCP、UDP示例

Socket网络编程: 1) OSI(了解): 国际标准化组织ISO(International Orgnization for Standardization)指定了网络通信的模型:开放系统互联(OSI,Open System Interconnection),把网络通信工作分为七层:物理层(最底层)-数据链路层-网络层-传输层-会话层-表示层-应用层(应用程序) 数据格式 功能与连接方式 典型设备 应用层 网络服务与使用者应用程序间的一个接口 表示层 数据表示.数据安全.数据压缩 会话层 建

Socket网络编程TCP、UDP演示样例

Socket网络编程: 1) OSI(了解): 国际标准化组织ISO(International Orgnization for Standardization)指定了网络通信的模型:开放系统互联(OSI,Open System Interconnection),把网络通信工作分为七层:物理层(最底层)-数据链路层-网络层-传输层-会话层-表示层-应用层(应用程序) 数据格式 功能与连接方式 典型设备 应用层 网络服务与使用者应用程序间的一个接口 表示层 数据表示.数据安全.数据压缩 会话层 建

linux网络基础(备忘)

1.如何让自己活得久一点,程序员 http://www.yeeyan.com/articles/view/31069/10175 在以太网的世界里,除了要网卡,还要有网线升级以及线路之间的交换器都要升级到相应的传输速率水平.ji 1.信号衰减的问题: 电子信号是存在衰减的,当长度达到100米时,就会很有可能出现问题.还有1.网线折的太严重,比如被门挤到,自行压制水晶头,缠绕度不够,风吹日晒的线路老化都会让信号衰减以及链接质量的问题:比如我之前遇到的一会链接上,一会连接不上,就是水晶头的制作有问题