《图解HTTP》读书笔记(1)

  • toc
    {:toc}

第一章 了解web及网络基础

TCP/IP协议族

通常使用的网络(包括互联网)实在TCP/IP协议族的基础上运作的,而HTTP属于它内部的一个子集。

协议(protocol) : 不同硬件、操作系统之间的通信规则

TCP/IP的分层管理

发送端逐层向下传输,接收端逐层向上传输。发送端每经过一层传输,需要加上该层的头部信息,
接收端需要进行拆包,去掉头部信息。

  • 应用层:决定了向用户提供应用服务时通信的活动。FTP,DNS,HTTP都属于这一层
  • 传输层:提供网络连接中两台计算机之间的数据传输。TCP和UDP属于这一层。
  • 网络层:又称网络互联层,处理网络上流动的数据包。
  • 链路层:又称数据链路层,处理链接网络的硬件部分。

与HTTP关系密切的协议:IP,TCP和DNS

1.负责传输的IP协议

IP协议(网际协议,Internet Protocol)属于网络层。IP协议和IP地址是不同的概念。
IP协议的作用是把各种数据包传送给对方。传送需要满足两个条件,IP地址和MAC地址。

  • IP地址指明了节点被分配到的地址
  • MAC地址是指网卡所属的固定地址

2.保证可靠性的TCP协议

TCP协议位于传输层,提供可靠的字节流服务。

  • 字节流服务:将大块数据分割成以报文段为单位的数据包进行管理
  • 可靠:通过一些手段确保信息准确无误的传输

三次握手 确保通信的可靠性

3.负责域名解析的DNS服务

DNS属于应用层协议,它提供域名到IP之间的解析服务。

4.URI和URL

  • URI:统一资源标识符,用字符串标识互联网上的某一资源

    • URI的格式:http://user:pass@www.example.jp:80/dir/index.htm?uid=1#ch1
  • URL:统一资源定位符,互联网上某一资源的位置,他是URI的子集

第二章 简单的HTTP协议

请求与响应

每次HTTP通信都是客户端发起请求,服务器返回响应

HTTP是不保存状态的协议

HTTP是无状态协议,它自身不对请求和响应之间的通信状态进行保存。为了实现状态保存,例如用户的登录状态保存,引入的Cookie技术。

HTTP方法

  • GET方法:获取资源
  • POST方法:传输实体主体
  • PUT方法:传输文件,存在安全问题,一般网站不使用该方法
  • HEAD方法:获取报文首部,与GET方法一样,只不过不返回报文主体部分
  • DELETE方法:删除文件,存在安全问题,一般网站不使用该方法
  • OPTIONS方法:询问支持的方法
  • TRACE方法:追踪路径,可查询发出的请求是怎么被加工修改、篡改的,可追踪代理服务器中转请求时对请求的修改,不常用
  • CONNECT方法:要求使用隧道协议链接代理,主要使用SSL和TLS协议把通信内容加密后经网络隧道传输。

持久链接和管线化

  • 持久链接
    所谓的持久链接就是在客户端和服务器建立TCP链接后,只要任何一方都没有提出中断链接,TCP链接就不会断。在HTTP1.0中,每个HTTP请求都要重新建立TCP链接,传输完成后,再断开
    链接,在HTTP1.1中,默认所有的请求都是持久链接,只需要链接一次,就可以一直保持这个链接,这样就大大减少了建立链接的开销,提高页面的显示速度。
  • 管线化
    所谓的管线化就是发送一个请求后,不需要等到响应返回,就可以发送下一个请求

使用Cookie的状态管理

Cookie会根据服务器发送响应报文内的一个叫做Set-Cookie的首部字段信息,通知客户端保存Cookie,当下次客户端再往该服务器发送请求时,客户端会自动在请求报文中加入Cookie值,
这样服务器就会获取客户端的状态。