HTTP Guide 阅读笔记(一)

这是我在重读HTTP权威指南,写的一篇读书笔记。以帮助我更好的理解HTTP协议,也是对自己再次学习的一个小小总结。

一: web浏览器 到 web服务器之间是怎么通讯的? 先来看几个疑问

  1. http协议在这中间起到了什么作用?
  2. 为什么GET数据,和POST数据,web服务器就能接收到数据呢?
  3. 这些数据是怎么传输给web服务器的?

二:几个术语

  1. MIME Type: Multipurpose Internet Mail Extension 多用途英特网邮件扩展, 用这个来标明请求的文件类型, 其中 Content-type 的类型说明了MIME的文件类型

  2. URI: Uniform Resource Identifer 统一资源定位标识符, 它就像internet上的邮政地址一样
    URI有2种形式,分别是URLURN

    • URL — 统一资源定位符
    • URN — 统一资源名, 实验阶段,没大范围使用
  3. HTTP Message: HTTP报文
    HTTP的报文分为3部分

    3.1 起始头

    GET /index.php http/1.1

    3.2 首部

    content-length: 236 byte
    Accept:

    3.3 主体

    Body部分

  4. http method方法

    • PUT — 将来自客户端的数据存储到一个命名的服务器资源中去
    • POST — 将客户端数据发送到服务端的网关应用程序
    • GET — 从客户端向服务器发送命令名资源
    • DELETE — 从服务器中删除命名资源
    • HEAD — 仅发送命名资源响应的http头部分(上面的首部)
  5. HTTP 状态码

三:了解 http 报文 - http协议的作用?

  1. http是个应用层协议, 传输就要交给 tcp/ip了
    http ———— 应用层
    tcp ———— 传输层
    ip ———— 网络层
    网络链路接口———— 数据链路层
    物理网络硬件———— 物理层

  2. http报文是怎么传输的 - 这些数据是怎么传输到服务器的?

    http客户端在向服务器发送一条报文前,需要先与服务器建立一条TCP连接,用这条连接进行通信.
    TCP负责这些报文的传输 - TCP协议详解
    怎么进行连接呢? 首先要知道服务器的地址,怎么找到服务器在哪里? — IP
    怎么找到是那个服务提供的http服务呢? — 端口

  3. 解析域名 —- 用到DNS服务, 通过域名解析出服务器的ip地址,通过ip地址来定位服务器

  4. 我们现在可以总结一下浏览器的链接处理流程?

    1: 浏览器从URL中解析出主机名 host
    2: 浏览器将主机名转换为浏览器的ip地址
    3: 浏览器将端口号(如果有)从URL中解析出来
    4: 浏览器建立一条与web服务器的TCP连接
    5: 浏览器向web服务器发送一条HTTP请求的报文
    6: 服务器向浏览器回送一条HTTP的响应报文
    7: 关闭连接。 浏览器显示文档

小弟不才,如有错误地方,还请斧正!