Tomcat内核之ASCII解码的表驱动模式

340 篇文章 0 订阅
53 篇文章 0 订阅
本文探讨了Tomcat如何利用ASCII编码进行网络通信,特别是在Socket基础上的ASCII解码。ASCII作为基础编码,对于英语字符表示充分,但随着计算机全球化,其他编码如GB2312、UNICODE、UTF-8相继出现。Tomcat在处理HTTP报文时,约定请求行和请求头使用ASCII编码,使用表驱动模式提高解码效率和代码可维护性。
摘要由CSDN通过智能技术生成

我们知道Tomcat通信是建立在Socket的基础上,而套接字在服务器端和客户端传递的报文都是未经过编码的字节流,每8位组成1个字节,计算机以二进制为基础,这是由于使用晶体管的开合状态表示1和0,这样8个电晶体管就可以组成一个字节,这正是应用层使用的最小单位——字节。

在通过Socket进行网络通信的程序中,假如我们在接收到报文时不知道通过什么编码才能正确解码,最好的办法就是用Socket最底层的输入装置读取字节流,在确认编码后再对这些字节流进行转码,否则产生解码错误。我们常见的编码有ASCII、GB2312、UNICODE、UTF-8等等,除此之外还有很多其他编码,为什么会有这么多不同的编码?

ASCII编码即American Standard Code for Information Interchange,作为美国标准信息交换编码,并且计算机刚开始只在美国流行,所以当时所有的计算机都使用ASCII编码,ASCII编码是由8

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

超人汪小建(seaboat)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值