HTTP基础知识(一)

了解Web及网络基础

HTTP版本:

  • HTTP于1990年问世,HTTP/0.9
  • HTTP正式标准公布在1996.5月,HTTP/1.0
  • 1997.1月公布的HTTP/1.1,为当前的主流版本
  • HTTP/2.0已在2015年5月正式发布,但要达到较高的使用覆盖率,仍需要时间

TCP/IP协议族:

  • 常用使用的网络是在TCP/IP协议族的基础上运作的,HTTP属于TCP/IP它内部的一个子集
  • TCP/IP是互联网相关的各类协议族的总称

TCP/IP的分层管理:

  1. 应用层:决定了向用户提供应用服务时通信的活动,HTTP协议处于该层。
  2. 传输层:传输层对上层应用层,提供处于网络连接中的两台计算机的数据传输,TCP和UDP协议在该层。
  3. 网络层:用来处理在网络上流动的数据包,数据包是网络传输的最小数据单位。该层规定了通过怎样的路径到达对方计算机,并把数据包传送给对方。
  4. 链路层:用来处理连接网络的硬件部分。包括控制操作系统、硬件的设备驱动、NIC,及光纤等舞力可见部分。硬件上的范畴均在链路层的作用范围之内。

TCP/IP通信传输流:

可靠的TCP协议:

为了确保将目前准确地送达目标处,TCP协议采用了三次握手策略。如果在握手过程中某个阶段莫名中断,TCP协议会再次以相同的顺序发送相同的数据包。

DNS服务:

通常用户会使用域名来访问对方的计算机,而不是通过IP地址反问。因为域名更符合人类的记忆习惯。但计算机更擅长处理一长串数字。DNS则是提供域名查找IP地址,或逆向从IP地址反查域名的服务。

URI和URL:

URI用字符串标识某一互联网资源,而URL表示资源的地点(互联网上所处的位置),URL是URI的子集。UR表示的范围更大更广,我们列举几种URI例子(下图):

 

简单的HTTP协议

HTTP协议用于客户端和服务端之间的通信:

  • 请求访问文本或图像等资源的一端称为客户端,而提供资源响应的一端称为服务端。
  • 在应用HTTP协议时,必定是一端担任客户端角色,另一端担任服务器端角色。

请求与响应的交换达成通信:

  • 请求必定由客户端发出,而服务器端回复向响应。

HTTP是不保存状态的协议:

  • HTTP是一种不保存状态,即无状态协议。HTTP协议自身不对请求和响应之间的通信状态进行保存。也就是说在HTTP这个级别,协议对于发送过的请求或响应都不做持久化处理。
  • HTTP协议自身不具备保存之前发送过的请求或响应的功能。

持久连接节省通信量:

  • 为了解决TCP连接的问题,HTTP/1.1和一部分的HTTP/1.0想出了持久连接,可称为HTTP keep-alive的方法。持久连接的特点是,只要任意一端没有明确提出断开连接,则保持TCP连接状态。
  • 持久连接旨在建立1次TCP连接后进行多次请求和响应的交互。
  • 持久连接的好处在于减少了TCP连接的重复建立和断开所造成的额外开销,减轻了服务器端的负载。另外,减少开销的那部分时间,使HTTP请求和响应能够更早地结束,这样Web页面的显示速度也就响应提高了。

使用Cookie的状态管理:

  • 因为HTTP是无状态协议,如果我们要对其状态进行管理的话可以用Cookie技术。
  • Cookie会根据从服务器发送的响应报文内的一个叫做Set-Cookie的首部字段信息,通知客户端保存Cookie。当下次客户端再次往该服务器发送请求时,客户端会自动在请求报文中加入Cookie值后发送出去。
  • 服务器端发现客户端发送过来的Cookie后,会去检查究竟是从哪一个客户端发来的连接请求,然后对比服务器上的记录,最后得到之前的状态信息。

 

HTTP报文内的HTTP信息

HTTP报文,以及报文的结构:

  • 用于HTTP协议交互的信息被称为HTTP报文。请求端的HTTP报文叫做请求报文,响应端的叫做响应报文。
  • HTTP报文结构可分为四部分:1、请求首部字段,2、通用首部字段, 3、空格,4、报文主体。

分割发送的分块传输编码:

  • 在HTTP通信过程中,请求的编码实体资源尚未全部传输完成之前,浏览器无法显示请求页面。在传输大容量数据时,通过吧数据分割成多块,能够让浏览器逐步显示页面。
  • 这种把实体主体分块的功能称为分块传输编码。

获取部分内容的范围请求:

  • 以前,用户不能使用现在这样高速的宽带访问互联网,当时,下载一个尺寸稍大的图片或文件就已经很吃力里,如果下载过程中遇到网络中断的情况,那就必须重头开始。
  • 为了解决上述问题,需要一种可恢复的机制。所谓恢复是指能从之前下载中断处恢复下载。
  • 要实现该功能需要指定下载的实体范围。像这样,指定范围的请求叫做范围请求(Range Request)。
  • 对一份10000字节大小的资源,如果使用范围请求,可以只请求5001~10000字节内的资源。

对于多重范围的范围请求,响应会在首部字段Content-Type标明 multipart/byteranges后返回响应报文。

 

返回结果的HTTP状态码

状态码的职责是当客户端向服务端发送请求时,描述返回的请求结果。借助状态码,用户可以知道服务器端是正常处理了请求,还是出现了错误。

 

与HTTP协作的Web服务器

用单台虚拟主机实现多个域名:

  • HTTP/1.1规范允许一台HTTP服务器搭建多个Web站点。
  • 即使物理层面只有一台服务器,但只要使用虚拟主机的功能,则可以假想已具有多台服务器。

通信数据转发程序:代理、网关、隧道:

  • 代理:代理是一种有转发功能的应用程序,它扮演了位于服务器和客户端的’中间人‘的角色,接收有客户端发送的请求并转发给服务器,同时也接收服务器返回的响应并转发给客户端。
  • 网关:网关是转发其他服务器通信数据的服务器,接收从客户端发送来的请求时,他就像自己拥有资源的服务器一样对请求进行处理。有事客户端可能都不会察觉,自己的通信目标是一个网关。
  • 隧道:隧道是在相隔甚远的客户端和服务器两者之间进行中转,并保持双方通信连接的应用程序。

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
HTTP(HyperText Transfer Protocol)是一种用于在网络中传输超文本的协议。它是客户端和服务器之间进行通信的规则集。下面是一些HTTP协议的基础知识: 1. HTTP通信是无状态的:HTTP协议本身不保留任何关于先前请求或响应的信息。每个HTTP请求都是独立的,服务器不会记住之前的请求。 2. 请求方法:HTTP定义了不同的请求方法,常用的有GET、POST、PUT、DELETE等。GET用于获取资源,POST用于提交数据,PUT用于更新资源,DELETE用于删除资源。 3. URL:统一资源定位符(URL)是用于标识和定位资源的地址。它由协议类型(如http://)、主机名、可选的端口号、路径和查询参数组成。 4. 请求头:HTTP请求包含一些元数据,称为请求头。请求头包含了一些关于请求的附加信息,如User-Agent、Accept-Language等。 5. 响应状态码:HTTP响应包含一个状态码,用于表示请求的处理结果。常见的状态码包括200(成功)、404(未找到)和500(服务器内部错误)等。 6. 响应头:HTTP响应也包含一些元数据,称为响应头。响应头包含了一些关于响应的附加信息,如Content-Type、Content-Length等。 7. 实体:HTTP请求和响应中的有效载荷称为实体。通常,在请求中,实体是要发送给服务器的数据;在响应中,实体是服务器返回的数据。 这些是HTTP协议的一些基础知识,希望对你有帮助!如有更多问题,请继续提问。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值