网络知识简介

经典五层模型

图:

HTTP协议需要基于网络中最重要的一个协议:TCP协议。涉及到HTTP请求的性能,过程中消耗。

传输层

  • 有两个协议:TCP/IP协议和UDP协议。更多情况下使用的是TCP/IP协议
  • 本层向用户提供可靠的端到端(End-to-End)服务
  • 传输层向高层屏蔽了下层数据通信的细节。比如输入URL就是屏蔽了细节之后的操作。再比如使用Ajax传输大的数据,一次传输不完。如何进行传输,可靠的与服务器交互,就是这一层的工作。

应用层

  • 为应用软件提供了很多服务,比如new XML HttpRequest()等
  • 构建于TCP协议之上
  • 屏蔽了网络传输的相关细节

HTTP历史

第一个定稿的HTTP协议是HTTP/0.9。具有以下特点:

  • 只有一个命令GET
  • 没有HEADER等描述数据的信息
  • 服务器发送完毕,就关闭TCP连接。同一个TCP连接里,可以发送多个HTTP请求。在HTTP1.0,2.0中已经实现

HTTP/1.0

  • 增加了很多命令,如POST,PUT等
  • 增加了status code和header
  • 多字符集支持、多部分发送、权限、缓存等

HTTP/1.1(目前广泛使用)

  • 持久连接。提升性能
  • pipeline
  • 增加了host和其它一些命令。可以在同一台屋里服务器跑多个不同的web服务,比如Java和node的服务器。请求的具体是哪一个服务器可以通过host来区分

HTTP/2.0(未来)

  • 所有数据以二进制传输
  • 同一个连接里面发送多个请求不再需要按照顺序来
  • 头信息压缩以及推送等提高效率的功能

HTTP的三次握手

在客服端和服务端进行HTTP请求的发送和返回的过程中,需要创建一个TCP connection。因为HTTP不存在连接的概念。只有请求和响应,两者都是数据包,需要一个传输通道。TCP connection会一直保持(1.1),可以发送多个HTTP请求。在这个过程中会现有三次握手的消耗,之后才会创建TCP connection。

三次握手

如图:
因为网络传输是有延时的,因此三次握手是为了防止server端开启无用连接。确认client端和server端的连接。

URI URL URN

  • URI Uniform Resource Identifier 统一资源标识符。用来唯一标识互联网上的信息资源。包括URL和RUN
  • URL Uniform Resource Locator 统一资源定位器