计算机网络-HTTP

文章目录

目录

文章目录

前言

一、Web+网络基础

二、HTTP协议

三、HTTP报文内HTTP信息

四、返回结果之HTTP状态码

五、HTTP协作的Web服务器

六、HTTP首部

七、确保Web安全的HTTPS

总结


前言

主要介绍了计算机网络的HTTP协议。


一、Web+网络基础

  • 定义
    • Web使用HTTP协议作为规范,完成从客户端到服务器端的一系列运作流程
  • TCP/IP
    • 定义
      • 将互联网相关联的协议集合总称为TCP/IP
    • 分层
      • 应用层
        • 提供应用服务时通信的活动
        • FTP、DNS、HTTP
      • 传输层(进程--端口)
        • 计算机之间的数据传输
        • TCP、UDP
      • 网络层(主机)
        • 处理网络上流动的数据包,选择传输路线
        • IP、各种路由选择协议
      • 数据链路层(网卡)
        • 处理网络连接的硬件部分
        • MAC
      • 应用
        • 发送数据时,经过每一层会将数据封装,加上各层协议的首部信息,方便在网络上传输
        • 收到数据时,经过每一层将其首部消去,最终只拿到数据内容
  • 与HTTP密不可分的协议
    • IP(网络层)
      • 依赖IP地址(可变)和MAC地址(不可变)完成数据包传输
      • ARP协议
        • 不同局域网主机传输数据时,会利用中转设备MAC地址转发数据(此时不知道实际下一接收方的MAC地址),ARP协议可以通过接收方主机IP地址反查出对应MAC地址
      • 路由选择routing
        • 实际完成传输之前,无法确定到底走哪条传输路径,每一台传输路径上的主机,动态根据当时网络状况选择下一步发往哪一个主机
    • TCP(传输层)
      • 提供可靠的、面向字节流的服务
        • 可靠
          • 超时重传机制,确保数据可靠传给对方
        • 字节流
          • 数据分割成以报文段为单位的数据包发送
      • 建立/解除连接
        • 三次握手
          • SYN、ACK
        • 四次挥手
          • FIN、ACK
    • DNS(应用层)
      • 域名服务系统:根据主机名和域名查询IP地址(或逆向)
    • IP、TCP、DNS、HTTP关系
      • DNS通过接受方域名解析出其IP地址,发送HTTP请求,TCP将请求数据分割为报文段发送,根据IP地址在整个网络上一边中转一边传送,接收方收到后去除IP首部,TCP将报文段重新排序组合,HTTP对请求解析,并且返回请求的资源
      • 万维网服务器会将HTTP请求报文将作为TCP连接三次握手的第三个报文的数据发送给万维网服务器
  • URI、URL
    • 统一资源标识符URI标识某一互联网资源
    • 统一资源定位符URL标识互联网资源的地址
    • URI格式
    • 在浏览器地址栏输入URL+回车后发生的事件
      • 浏览器向DNS服务器请求解析出URL对应的IP地址
      • 根据IP地址和默认端口号80,与服务器建立TCP连接
      • 浏览器发出URL对应资源的HTTP请求(该请求作为TCP三次挥手的第三个报文的数据)交给服务器
      • 服务器做出响应,将URL对应的资源发送给浏览器
      • 释放TCP连接
      • 浏览器显示文本

二、HTTP协议

  • 客户主动发出请求,服务端被动响应请求,使用TCP连接,ASCII码串构成请求,类MIME(一种媒体类型)构成响应,无状态协议(可用Cookie存状态),是一个面向事务(一系列必须一起完成的信息交换)的应用层协议
  • HTTP格式
    • 请求
    • 响应
  • 访问资源用URI定位,访问服务器用*代替URI
  • HTTP方法
    • GET获取资源
    • POST传输实体主体
    • PUT传输文件
      • 请求报文主体内存文件,发送保存到URI处
      • 无验证,一般不用,除非遵守REST标准
    • HEAD获取报文头部
      • 用于确认URI有效性和资源更新时间等通信状态
      • 和GET一样但是不返回报文主体
    • DELETE删除文件
      • 删除URI指定的资源
      • 无验证,一般不用,除非遵守REST标准
    • OPTIONS询问URI标识的资源支持的方法
    • TRACE追踪路径
    • CONNECT用隧道协议连接代理
      • 安全套接层SSL和传输层安全TLS协议把通信内容加密后经网络隧道传输
  • 持久连接
    • 非持久连接的HTTP/1.0每次请求需要2*RTT,HTTP/1.1的TCP连接一次,可以执行多次HTTP请求和响应的交互,直到任意一方明确提出断开连接(或者长时间未发送数据)再断开
    • 管线化技术(流水线技术)
      • 无需收到上个请求的响应,就可直接发送下一个请求,可实现并行发送多个请求
  • Cookie状态管理
    • 在请求和响应报文中写入Cookie信息,控制客户端状态
    • 过程
      • 第一次发送时,客户端向服务器端请求Cookie信息,服务端生成Cookie用于记录客户端是谁,在响应中添加Cookie返回
      • 第二次请求时,服务器通过客户端发来的请求中Cookie信息就可以认出客户端(Cookie记住客户端状态)

三、HTTP报文内HTTP信息

  • 报文格式
    • 请求
      • 请求行(方法+URI+HTTP版本)+请求首部+请求主体
    • 响应
      • 响应行(HTTP版本+状态码+原因短语)+响应首部+响应主体
  • 编码提升传输速率
    • 报文主体(TCP将大数据分割成报文段易于传输)用于传输实体主体(实际需要传输的数据)
    • 压缩传输的内容编码
      • 服务端通过HTTP协议中的内容编码功能压缩实体,客户端收到通过内容编码功能压缩的实体后解码
    • 分割发送的分块传输编码
      • HTTP协议中的分块传输编码功能可以将实体主体分块,实现浏览器逐步显示页面
  • 多部分对象集合
    • 通过多用途因特网邮件扩展机制MIME实现邮件中各种类型附件的添加,HTTP协议中采纳多部分对象集合实现一份报文含多类型实体
    • boundary字符串 划分多部分对象集合指明的各类实体,各个实体起始行前插入--字符串(boundary) 标记,每个部分类型实体都可以有首部字段Content-type,多部分对象集合结尾用--字符串--(boundary)标记
    • Web表单文件上传

  • 获取部分内容的范围请求
    • 范围请求Range Request功能可以指定下载实体的范围,在恢复中断的下载时无需从头开始下载
    • 实现范围请求后,响应状态码为206 Partial Content,多重范围的范围请求响应首部字段Content-Type会标明multipart/byteranges(多部分对象集合的一种);实现不了响应状态码为200 OK,返回完整实体内容
  • 内容协商返回最合适内容
    • 内容协商Content Negotiation功能根据请求报文的某些首部字段作为判断标准,在同一URI对应的多个页面资源中选择最合适的一个作为响应
    • 服务器驱动、客户端驱动(用户自动选择中、英文/根据OS或浏览器自动选择PC端或者手机端)、透明协商(客户、服务器各自协商)

四、返回结果之HTTP状态码

  • 响应的状态码(数字+原因短语)用于描述请求的处理结果,5类33种
  • 1XX 表示通知信息,请求收到或正在进行处理
  • 2XX 成功
    • 200 OK 成功返回所需要的资源(GET返回实体,HEAD返回实体首部)
    • 204 No Content 请求处理成功无资源返回
    • 206 Partial Content 成功完成范围请求(响应报文有Content-Range指定范围)
  • 3XX 重定向
    浏览器需要执行某些特定的处理以正确处理请求
    • 301 Moved Permanently 永久的重定向,需要更新请求中的URI
    • 302 Found 临时重定向,这次请求使用新的URI但不永久更新URI
    • 303 See Other 需要用GET方法通过所请求资源的另一个URI发送请求
    • 304 Not Modified 发送附带条件的请求时,服务器允许访问资源但是附带条件不满足
    • 307 Temporary Redirect 临时重定向,302会将方法从POST变为GET,307不变(每种浏览器都不同)
  • 4XX 客户端错误
    • 400 Bad Request 请求报文有语法错误
    • 401 Unauthorized 请求需要通过HTTP认证
    • 403 Forbidden 服务器拒绝请求资源的访问
    • 404 Not Found 找不到资源/拒绝请求但是不想说明理由
  • 5XX 服务器错误
    • 500 Internal Server Error 服务器端出现错误
    • 503 Service Unavailable 服务器超负荷或停机维修

五、HTTP协作的Web服务器

  • 虚拟主机功能
    • 一台服务器实现虚拟主机功能对应多个域名(多个Web站点),这些域名DNS解析后对应一个IP地址,需要在Host首部完整指定主机名或域名URI
  • 通信数据转发程序
    • 代理Proxy
      • 有转发功能的应用程序,客户端与服务器的中间人,经过代理服务器时,会追加写入Via首部信息,以标记出经过的主机信息
      • 缓存代理
        • 保存资源副本,再次访问该资源时无需再次向源服务器发送请求
      • 透明代理
        • 不对报文进行修改(非透明代理对报文进行修改加工)
    • 网关
      • 转发其他服务器通信数据的服务器,像自己拥有资源一样处理客户端发来的请求
      • 可以使通信线路上的服务器提供非HTTP协议服务
      • 提高通信安全性,可以在客户端与网关之间的通信线路上加密以确保连接的安全
    • 隧道
      • 保持远距离的客户端与服务器之间安全通信连接的应用程序
      • 安全套接层SSL和传输层安全TLS协议把通信内容加密后经网络隧道传输
  • 缓存
    • 在缓存代理或者客户端本地磁盘(称作临时网络文件)内保存资源副本,减少对源服务器的重复请求,节约资源,提高效率
    • 为了防止资源更新导致缓存不能用,在缓存有效期限超过/客户端要求时,需要向源服务器确认资源有效性

六、HTTP首部

  • 首部字段类型
    • 通用
    • 请求
    • 响应
    • 实体
  • 非HTTP/1.1首部字段
    • Cookie、Set-Cookie等很常用
  • End-To-End/Hop-To-Hop
    • End-To-End端到端首部:必须被转发到最终接收目标处,且在缓存中保存,在代理处必须被转发
    • Hop-To-Hop逐跳首部:只对单次转发有效,遇到代理/缓存不再转发(HTTP/1.1后必须提供Connection首部字段)
      • Connection、Keep-Alive、Proxy-Authorization、Trailer、TE、Transfer-Encoding、Upgrade(其他都是端到端)

七、确保Web安全的HTTPS

  • HTTP的不安全问题
    • 明文不加密,易被窃听
      • 传输加密
        • HTTP与SSL+TLS结合,升级为HTTPS,对整个通信线路加密处理
      • 内容加密
        • 对传输的报文实体部分加密处理,要求客户端与服务器必须同时具备加密与解密机制
    • 不进行通信双方身份的认证,易遭伪装
      • SSL提供证书,以验证通信双方的身份
    • 报文完整性不确认,易遭篡改
      • SSL提供认证和加密处理和摘要功能,与HTTP的MD5(一种散列值校验)和PGP(Web提供PGP完美隐私创建数字签名)共同实现完整性保障
  • HTTPS=HTTP+加密+认证+完整性保护
    • SSL
      应用最为广泛的网络安全技术
      • SSL提供加密处理、认证和完整性保护(MAC(信息未改变编码)摘要)功能,HTTP通过SSL(和TLS)与TCP通信
    • SSL的功能
      • 加密方法
        明文不加密
        • 共享(对称)密钥加密
          • 加密、解密应用同一个密钥,必须将密钥传输给接收方,易被监听,但是速度较快
        • 公开(非对称)密钥加密
          • 发送方用接收方提供的公开密钥加密,接收方用自己配对的私有密钥解密,密钥无需传输,避免被监听,但是速度较慢
          • 通过数字证书认证机构发布公钥数字证书,以确认公开密钥的身份
        • HTTPS使用混合加密方式
          • 建立通信交换报文阶段使用共享密钥加密,在交换密钥环节使用公开密钥加密
      • 证书
        通信双发不认证
        • 公钥数字证书
        • 服务器证书
          • 认证服务器身份
        • 运营组织认证证书(EV SSL证书)
          • 证书可以认证服务器背后运营的企业的真实性
        • 客户端证书
          • 认证客户端身份,需要购买,一般网银这种大客户端才会购买
        • 自签名证书
          • 自认证机构发布的,但实际不能在互联网上用的自签名证书
      • 摘要
        报文完整性保护
        • MAC(Message Authentic Code)摘要,搭配HTTP的MD5、PGP实现

总结

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值