HTTP网络协议三:应用层、HTTP协议、HTTP1.0、HTTP1.1、HTTP2.0区别、Session、Cookie、跨域

应用层常见协议

应用层的常见协议
超文本协议HTTP、HTTPS
文件传输FTP
电子邮件SMTP、POP3、IMAP
动态主机配置DHCP
域名系统DNS

DNS

  • DNS全称:Domain Name System:域名系统
    • 利用DNS可以将域名解析成对应的IP地址
    • DNS可以采用UDP协议,也可以基于TCP协议,服务器占用53端口

DHCP

  • DHCP :(Dynamic Host Configuration Protocol)动态IP地址分配
    • DHCP服务器会从IP池中,挑选一个IP地址 出租给客户端一端时间,时间到期就回收
    • 适用于移动设备、无线设备

HTTP

  • HTTP(Hyper Text Transport Protocol),超文本传输协议
    • 是互联网中应用最广泛的应用层协议之一

HTTP报文以及HTTP报文的字段说明

Get Post区别

GET主要用于读取操作、请求参数直接拼接到URL后边(浏览器对URL长度有限制)
POST主要用于添加、删除、修改的操作,请求参数可以放到请求体中(没有大小限制)

跨域问题

浏览器有个同源策略(Same-Origin Policy)
规定:默认情况下,AJAX请求只能发送同源的URL
同源指:协议、域名(IP)、端口

问题:前后端代码分离,部署在不同的服务器上,页面访问数据在不同服务器会产生跨域问题。

解决跨域问题:跨域资源共享(Cors: Cross-Origin Resource Shareing)Cros需要浏览器、服务器共同实现。
客户端:所有浏览器都支持(IE至少是IE10版本)
服务器:响应头设置:Access-Control-Allow-Origin: *


Cookie和Session

  • Cookie:
    客户端(浏览器)存储一些数据,存储到本地磁盘(硬盘)
    服务器返回Cookie交给客户端存储
    请求数据时,浏览器自动带上Cookie。
  • Session
    在服务器中存储一些数据,存储在服务器内存中

HTTP不同版本之间的差别

  • HTTP1.0

    1. 支持POST、HEAD等请求方法、支持请求头、响应头、支持多种数据类型
    2. 浏览器每次请求都需要与服务器建立一个TCP连接,请求处理完毕以后立即断开TCP连接
  • HTTP1.1

    1. 支持PUT、DELETE等请求方法
    2. 传输的数据是文本格式
    3. 采用持久连接Connection:keep-alive,多个请求可以共用同一个TCP连接,但是是串行连接,一个连接只能对应一个请求。(针对同一个域名,大多数浏览器允许同时最多6个TCP并发连接)
    • HTTP1.1缺点:
      • 同一时间,一个连接只能对应一个请求
        • 针对同一域名,大多数浏览器允许最多创建6个并发连接
      • 同一个请求中,头信息会被重复传输
        • 通常会给每个传输增加500~800字节的开销
        • 如果使用Cookie,增加的开销有时会达到上千字节
  • HTTP/2

    • HTTP/2的一些概念
      • 数据流:
        • 已经建立连接的双向数字流,可以承载一条或者多条消息,所有消息都在一个TCP连接上完成,此连接可以承载任意数量的双向数据流
      • 消息:
        • 与逻辑HTTP请求或响应消息对应,由一系列帧组成
        • HTTP/2最小通信单位,每一帧都包含帧头(会标识出当前中帧所属的数据流)
        • 来自不容同数据流的帧可以交错发送,然后再根据帧头的数据流标识符重新组装。
    • HTTP/2的特性
      • 多路复用(Multiplexing)
        • 客户端和服务器可以将HTTP消息分解为互不依赖的帧,然后交错发送,最后再在另一端把他们重新组装起来。
        • 并行交错的发送多个请求,请求之间不受影响
        • 并行交错的发送多个响应,响应之间互补干扰
        • 使用一个连接并行发送多个请求和响应
      • 优先级
        • HTTP/2标准允许每个字节流都有一个关联的权重和依赖关系
          • 可以向每个字节流分配一个介于1至256之间的整数
          • 每个数据流与其他数据流之间可以存在显示依赖关系
      • 头部压缩
        • HTTP/2使用HPACK压缩请求头和响应头
        • 可以极大的减少头部开销,进而提升性能
      • 服务器推送
        • 服务器可以对一个客户端请求发送多个响应
        • 除了对最初请求的响应外,服务器还可以向客户端推送额外名额,而无需客户端额外明确的请求
    • HTTP/2的问题
      • 队头阻塞
      • 握手延迟
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值