It's our wits that make us men.

《图解HTTP》笔记之一

Posted on By He Yan

HTTP起源

  • 制定HTTP的初衷:让世界各地的学者方便地共享知识
  • 基本理念:多文档之间相互关联形成超文本,连成可相互参阅的WWW(world Wide Web 万维网)
  • 三项WWW的构建技术:
    1. 把SGML(标准通用标记语言)作为页面的文本标记语言的 HTML(超文本标记语言)
    2. 作为文档传递协议的HTTP
    3. 指定文档所在地址的URL(统一资源定位符)

TCP/IP是什么

TCP/IP:根互联网通信相关的一系列协议的统称

  • 分层的TCP/IP协议族:
应用层:决定了向用户提供应用服务时通信的活动(FTP,DNS,HTTP)
⬇⬆
传输层:提供处于网络连接中的两台计算机之间的数据分包传输(TCP,UDP)
⬇⬆
网络层:用来处理网络上流动的数据包,规定了传输路线(IP)
⬇⬆
数据链路层:用来处理连接网络的硬件部分

IP协议(网际协议)

  • IP协议主要作用是把各种数据包传递给对方,根据IP地址反查MAC地址,然后投递数据包
  • 根据IP地址查MAC地址:IP ——ARP协议——> MAC

TCP协议(传输控制协议)

  • TCP协议提供可靠字节流服务:
    • 可靠:使用三次握手策略确认数据传输是否成功
    • 字节流:将数据分包传输
  • 可靠的三次握手策略:
    1. C ——SYN——> S
    2. C <——SYN/ACK—— S
    3. C ——ACK——> S

DNS服务

  • 提供域名和IP地址之间的互相解析服务

HTTP协议

  • 应用层中向web服务器请求文档资源的一种协议

组合协议进行网络请求

Client:想要www.test.com/src资源
应用层:
DNS服务获取到www.test.com对应的IP:123.456.789.112
生成HTTP请求报文:request:www.test.com/src……
⬇
传输层:
TCP将数据分割成若干数据包:口,口,口
⬇
网络层:
基于IP协议寻找目标服务器MAC地址并定制传输路线中转发送
⬇
数据链路层:
发出数据信号
⬇
Server(123.456.789.112):回传www.test.com/src文档资源

URI

URI(统一资源标志符)

是由某个协议方案表示的资源的标识符,能够唯一标识网络上的某一可用资源

  • URI是一个抽象的概念,凡是能唯一标识某一资源的东西/方式,都可以称之为URI的一种实现,比如下面的URL

URL(统一资源定位符)

  • 唯一标识某一可用资源的方法有很多,而URL就是其中之一,他用定位的方式来标识:

URL确定某资源在互联网上所处的位置,就是我们在浏览器地址栏输入的链接。通过描述资源位置来唯一定位某一可用资源

定位某资源的方式(URL)

http://  user:pass@  www.test.com :80 /dir/index.html ?uid=1   #ch1
协议方案名+认证信息  +  服务器地址  +  端口 + 文件路径   +  查询参数 + 片段标识符
  • URL通过定位的方式唯一标识某一资源,所以URL是URI;
  • URI唯一标识某一资源但是不一定是定位的方式,所以URI不一定等于URL
  • =》URL是URI的子集