由HTTP的\r\n所联想到的

  本文主要是以HTTP使用\r\n来换行,联想到不同操作系统的换行问题,对HTTP是一种基于文本的协议做了一次有意思的分析。

使用巴克斯范式来表示HTTP消息如下

                   http-message = start-line

                     *(message-headerCRLF)

                     CRLF

                     [message-header]

  从巴克斯范式表示的http消息可以看出,http使用了CRLF作为换行的标志,在实际的抓包过程中,我们也可以看到如下图所示的情况,即\r\n


  还记得三大操作系统的换行符吗。Windows系统采用CRLF表示下一行;Linux/UNIX系统采用LF表示下一行;MAC系统采用CR表示下一行(PS;据说MAC OS 现在都换成LF了,求苹果大神确认一下)。我们知道windows和Linux之间互传未经过转换的文件,是会出现问题的。这一现象可以通过cat –A filename进行查看,Linux文件是以$也就是\n结尾的(这就是我们敲命令的时候会跟个$的原因),而将Windows文件拷贝到Linux,会出现^M$结尾,也就是\r\n。有的时候我们可能并不会注意到,因为有的软件会自动将我们的文件做了转换。当然Linux到Windows就有可能出现没有换行的情况啦。

  这次我们想关注的是既然HTTP使用\r\n,那么至于不同的操作系统会出现什么样的影响呢?

  提到这里,就不得不说一下二进制传输和ASCII传输。这个概念我是在ftp协议里面遇到的。二进制传输很简单,即按二进制的码流进行传输,不论在哪里,内容都是一样的,经常会遇到使用二进制传输文本文件的异常情况。FTP协议中的ASCII传输有如下说明:The sender converts the datafrom an internal character representation to the standard 8-bit NVT-ASCII representation (see the Telnetspecification).  The receiver willconvert the data from the standard form to his own internal form.In accordancewith the NVT standard, the <CRLF> sequence shouldbe used where necessary to denote the end of a line of text.  (See the discussion of file structure at theend of the Section on Data Representation and Storage.),即FTP使用NVT-ASCII中间格式来解决不同系统之间的异构性(一般的做法是,传输文本考虑使用ASCII传输,而其他诸如视屏等使用二进制),即Linux 的\n传输到windows之后会被转换成\r\n,其实中间的时候已经被转换成为\r\n,因为NVT-ASCII使用的是CRLF。

  其实这里面有一点是需要明确一下的,数据在网线上进行传输,最终的形态都是二进制即高低电平的形式在物理层上面传输,我们所要讨论的问题在于其在应用层面做了什么操作。比如FTP,先做转换,完事之后传输。

  说完FTP,回来看HTTP是如何传输的。这其实要分成两部分,第一部分是HTTP的头部是如何传输的;第二部分是HTTP的消息实体是如何传输的。就像前面所涉及到的FTP,说的是数据部分要做转换。对于HTTP的消息实体,其传输方式多种多样,可以从头域Content-Encoding中看出来。也就是说消息实体会先经过Content-Encoding编码转换成为中间格式,在到达目的端然后在解码出来,即转换为目的端的情况。这里其实和FTP会经历中间格式是一回事,也就是说对于消息实体换行的事情,中间格式给解决了。这些也就是浏览器的开发者需要考虑实现的。

  那么对于HTTP头域是使用了什么编码方式的呢?我们知道数据部分使用具体的编码方式是因为数据部分各种各样,有mp4,xml,txt等多种数据格式,而至于HTTP的头部域,其实就是文本格式,这也是我们经常说HTTP协议是基于文本的协议的原因吧。那么对于文本,我们通常想到的传输方式就是ASCII,即和FTP传输文本采用的NVT-ASCII是一类的事情(这个地方没有在RFC中找到确切的说明,哪位大神找到后告诉我),那么自此,不同系统之间换行空格的事情也就解决了。

  其实再仔细的想一想HTTP协议之所以成为基于文本的协议,这也是某种原因吧。因为其和下层的TCP协议还是有着本质上的差别的。

  说完了这么多,其实各种编程语言是用\n换行,并没有在windows上面反映出来,其背后的原因也是可以在深入探讨一下的。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
机器学习是一种人工智能(AI)的子领域,致力于研究如何利用数据和算法让计算机系统具备学习能力,从而能够自动地完成特定任务或者改进自身性能。机器学习的核心思想是让计算机系统通过学习数据中的模式和规律来实现目标,而不需要显式地编程。 机器学习应用非常广泛,包括但不限于以下领域: 图像识别和计算机视觉: 机器学习在图像识别、目标检测、人脸识别、图像分割等方面有着广泛的应用。例如,通过深度学习技术,可以训练神经网络来识别图像中的对象、人脸或者场景,用于智能监控、自动驾驶、医学影像分析等领域。 自然语言处理: 机器学习在自然语言处理领域有着重要的应用,包括文本分类、情感分析、机器翻译、语音识别等。例如,通过深度学习模型,可以训练神经网络来理解和生成自然语言,用于智能客服、智能助手、机器翻译等场景。 推荐系统: 推荐系统利用机器学习算法分析用户的行为和偏好,为用户推荐个性化的产品或服务。例如,电商网站可以利用机器学习算法分析用户的购买历史和浏览行为,向用户推荐感兴趣的商品。 预测和预测分析: 机器学习可以用于预测未来事件的发生概率或者趋势。例如,金融领域可以利用机器学习算法进行股票价格预测、信用评分、欺诈检测等。 医疗诊断和生物信息学: 机器学习在医疗诊断、药物研发、基因组学等领域有着重要的应用。例如,可以利用机器学习算法分析医学影像数据进行疾病诊断,或者利用机器学习算法分析基因数据进行疾病风险预测。 智能交通和物联网: 机器学习可以应用于智能交通系统、智能城市管理和物联网等领域。例如,可以利用机器学习算法分析交通数据优化交通流量,或者利用机器学习算法分析传感器数据监测设备状态。 以上仅是机器学习应用的一部分,随着机器学习技术的不断发展和应用场景的不断拓展,机器学习在各个领域都有着重要的应用价值,并且正在改变我们的生活和工作方式。
### 回答1: 联想昭阳n4620z笔记本电脑的显卡驱动可通过多种方式获取。一个好的方法是访问联想的官方网站,然后找到与该笔记本电脑相关的驱动下载页面。在该页面上,您应该找到与显卡驱动程序相关的下拉菜单选项。在此处,您可以选择正确的操作系统和显卡型号,然后下载并安装最新的驱动程序。在安装新驱动程序之前,我们建议您备份您的系统,以防止因驱动问题导致系统错误。 此外,您还可以使用第三方驱动程序更新和管理工具轻松获取和安装最新的显卡驱动程序。这些工具可以自动扫描计算机上的硬件设备并查找与之匹配的驱动程序。同时,它们还可以自动安装最新的驱动程序并解决许多常见的驱动程序问题。但是,请注意使用此类工具时,您需要选择可靠的、受信任的供应商,以确保最大程度地保护您的计算机系统安全。 总之,为了获取和安装联想昭阳n4620z笔记本电脑的显卡驱动,您可以通过访问联想的官方网站,或使用第三方驱动程序更新和管理工具等多种途径。无论您选择哪种方法,都请确保您从安全、可靠的来源获取和安装驱动程序,以确保保护您的计算机系统和硬件的安全和稳定性。 ### 回答2: 联想昭阳n4620z包含了NVIDIA GeForce GT740M显卡驱动。这款驱动可以帮助用户正常运行和使用该显卡,提高其性能和稳定性。用户可以在联想官网上找到这个驱动,根据操作系统版本和电脑型号选择正确的驱动程序下载和安装。在安装过程中,用户需要按照提示完成安装,重启电脑后即可开始使用该显卡和驱动程序。此外,用户也可以选择使用第三方驱动管理软件来自动更新显卡驱动,以确保其始终处于最新和高效的状态。需要注意的是,驱动程序的版本和适用范围需要与操作系统和硬件设备相匹配,否则可能会出现不兼容或无法使用的情况。因此,在下载和安装驱动程序之前,请仔细核对相关信息和硬件配置,以确保不会出现任何问题。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

村中少年

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

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

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

打赏作者

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

抵扣说明:

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

余额充值