HTTP协议学习(一)

前言

这是一篇HTTP协议学习笔记,当中记录了HTTP相关基础知识,此外还对计算机网络的相关知识以及缩写做了适当的解释。

Web及网络基础

访问Web

Web就是我们常说的网站,当我们在网页浏览器(Web browser)地址栏中输入URL之后,信息会被送往URL指定的Web服务器,浏览器会从Web服务器上获取文件资源(resource),内容就会显现在浏览器页面上。Web使用HTTP(HyperText Transfer Protocol,超文本传输协议)协议作为规范,Web是建立在HTTP协议上通信的。

HTTP起源

HTTP诞生于1989年3月,CERN(欧洲核子研究所)提出一种远程知识共享系统,借助多问党之间相互关联形成超文本连成可以互相参阅的WWW(World Wide Web,万维网)。

WWW的构建包括三项技术:

  • 作为文本标记语言的HTML(HyperText Markup Language,超文本标记语言)
  • 作为文本传递协议的HTTP(HyperText Transfer Protocol,超文本传输协议)
  • 指定文档所在地址的URL(Uniform Resource Locator,统一资源定位符)

HTTP时间点:

  • CERN研发了世界上第一台Web系统,1990年
  • 日本第一个网站主页上线,1992年9月
  • NCSA(Nation Center for Surpercomputer Applications,美国国家超级计算机应用中心)首款浏览器Mosaic问世,1993年1月
  • 网景通信公司发布了Netscape Navigator,1994年12月
  • 微软公司发布IE(Internet Explorer),1995年

随后各家公司对HTML做了各自的扩展,在写HTML页面时不得不考虑兼容不同公司的浏览器。通过几年的发展,HTTP在1996年5月作为标准被正式公布,其版本被命名为HTTP/1.0,并记载于RFC1945,该协议标准在服务器端使用至今。1997年发布的HTTP/1.1是目前模流的HTTP协议版本。作为Web文档传输协议的HTTP几乎没有更新,新一代HTTP/2.0仍在制定中。HTTP是为了解决文本传输难题,现有的HTTP协议扩展超越了Web框架,已经运用到各个场景

网络基础TCP/IP

TCP/IP是协议族,通常的网络是在此协议族上运行的,计算机与网络设备要相互通信就要基于相同的方法,这种方法就称为协议(protocol),协议是规定设备之间如何通信的规则。与互联网相关的协议集合起来总称为TCP/IP协议族。
TCP/IP协议族里最总要的就是分层管理,按照层次不同分为:应用层、传输层、网络层、数据链路层。这样做的好处是当有需要修改设计时,只需要修改对应层的部分,每个层级都做好接口设计,层级内部就可以自由改动。

应用层

负责为操作系统或网络应用程序提供访问网络服务的接口,向用户提供应用服务通信活动。协议族内提供各类应用服务包括:

  • HTTP(HyperText Transfer Protocol,超文本传输协议)
  • FTP(File Transfer Protocol,文件传输协议),端口号:21
  • DNS(Domain Name Service,域名服务协议),提供域名到IP地址之间的解析服务
  • DHCP(Dynamic Host Configuration Protocol,动态主机分配协议),给内部网络自动分配IP地址

传输层

对于应用层提供处在网络连接中两台设备间的数据传输,主要负责对应用层数据分段并提供端到端的、可靠或不可靠的传输,其协议数据单元为数据段(segment),主要协议代表有TCP、UDP

  • TCP(Transmission Control Protocol,传输控制协议),可靠、有序、无丢失、不重复。
  • UDP(User Datagram Protocol,用户数据报协议),高效,可能会造成丢失,广播形式。

网络层

负责解析网络地址,确定网络传输路径。对子网间的数据报进行路由选择
协议数据单元为数据报(packet),网络设备为路由器,常用协议:

  • IP(Internet Protocol,网络互联协议)包括IPv4、IPv6
  • ARP(Address Resolution Protocol,地址解析协议)IP地址和物理地址间的解析协议

数据链路层

负责处理连接网络中的硬件部分,包括操作系统、硬件设备驱动、网络适配器及光纤等物理可见部分
网络设备:网卡(Network Interface Card)、网桥(Bredge)、交换机;数据单元:帧(Frame)

TCP/IP传输流

利用TCP/IP协议族进行网络通信时,数据会通过分层的顺序与对方进行传输。发送端从应用层往下走,接收端从链路层往上走。在浏览网页时,客户端在应用层(HTTP协议)发出HTTP请求,传输层(TCP协议)把从应用层收到的数据(HTTP报文)进行分割,并在各报文上打上标记序号及端口号转发给网络层(IP协议),网络层增加作为通信目的地的MAC地址后转发给链路层,发往网络的通信请求准备就绪。接收端的服务器接收到在链路层上的数据,按序往上层发,一直到应用层服务端才算接收到客户端发送的请求。
发送端在层与层之间进行数据传输的过程中会打上一个属于该层所属的首部信息标记。同样,接收端在接收数据的过程中会去掉该层标记,这样把数据信息打包起来的方式叫做封装。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值