HTTP权威指南笔记01

HTTP01

计算机网络知识点补充

网络协议体系结构

网络协议包括:语法;语义;同步。
osi有七层协议体系结构;tcp/ip有四层体系结构。
四层(三层):应用层;运输层;网际层;网络接口层(无具体内容)。
折中采用五层:应用层;传输层;网络层;数据链路层;物理层。
应用层;应用层协议如http;ftp等
传输层;TCP;UDP协议
网际层;IP协议
链路层:网络特有的链路接口
物理层:物理网络硬件

文档类型区别

  • 静态文档:由编写人员编写后基本不再改动
  • 动态文档:由后台程序自动生成后不再变动
  • 活动文档:页面实时更新(通过服务器推送或活动文档技术)

鼠标点击链接后

亦或是在搜索框中输入URL后:(以www.baidu.com为例)

  1. 浏览器分析链接指向页面的URL
  2. 浏览器向DNS请求解析网站www.baidu.com的IP地址
  3. 域名系统DNS解析出百度服务器的IP地址为xxx.xxx.x.xxx
  4. 浏览器与服务器建立TCP连接(通过80端口)
  5. 浏览器发出取文件命令: GET /baiduxx/index.html
  6. 服务器www.baidu.com给出响应,将文件index.html发送给浏览器
  7. 释放TCP连接
  8. 浏览器显示index.html的内容(浏览器渲染步骤)
    1. 构建DOM树:从上到下解析HTML文档生成DOM节点树
    2. 构建CSSOM树:加载解析样式生成CSSOM树
    3. 执行javascript:加载执行javascript代码
    4. 构建渲染树:根据DOM树和CSSOM树生成渲染树;
    5. 布局:根据渲染树将节点树的每一个节点布局在屏幕上的正确位置
    6. 绘制:遍历渲染树绘制所有节点,并应用适当的样式。(UI后端模块)

HTTP相关概念

  • URI:统一资源标识符;用于定位资源。有两种形式:URL和URN。
  • URN:统一资源名;作为特定内容的唯一名称;与资源所在地无关,可以将资源四处搬移。【使用非常少】
  • URL:统一资源定位符;用于获取准确,固定位置的资源;分为三部分:
    • 通用格式:scheme://user:passwd@host:port/path;param?query#frag
    • 方案:说明了访问资源所使用的协议类型;
    • 地址:服务器的因特网地址;
    • 资源:资源的具体路径。

HTTP事务:由一条请求命令和一个响应结果组成;通信是通过http报文的格式化数据块进行的。

报文:

是由一行行简单字符串组成的纯文本;人们可以很方便的对其进行读写。

请求报文格式:

method     request-URL     version
headers
entity-body

响应报文格式:

version     status     reason-phrase
headers
entity-body

报文组成:

起始行:

  • 请求报文的说明了要做些什么;包含了一个方法和一个请求URL,以及http版本号。
  • 响应报文的说明了发生了什么;包含了http版本,数字状态码,以及原因短语。

    1. 方法:

      • 安全方法:GET与HEAD方法都被认为是安全的;因为不会在服务器上产生结果。
      • 使用目的:允许HTTP应用程序开发者通知用户什么时候可能引发某些动作的不安全方法。
      • 常用HTTP方法:(服务器并不一定都实现了)
        • GET 向服务器获取一份文档
        • HEAD 只从服务器获取文档的首部
        • POST 向服务器发送需要处理的数据
        • PUT 将请求的主体部分存储在服务器上
        • TRACE 对可能经过代理服务器传送到服务器上去的报文进行跟踪
        • OPTIONS 决定可以在服务器上执行哪些方法
        • DELETE 从服务器上删除一份文档
    2. 状态码:表明事务处理结果

      • 100-199:信息性状态码 【100 continue 请客户端继续进行;101】
      • 200-299:成功状态码 【200 ok ;201 created ;202 accepted;203 】
      • 300-399:重定向状态码【300…】
      • 400-499:客户端错误状态码【404…】
      • 500-599:服务器错误状态码

首部:

名值对的列表;向请求和响应报文中添加了一些附加信息。某一首部行过长可以使用前端有空格或制表符的首部延续行。
分类:
通用首部:实现通用功能;如date
请求首部:请求专用
响应首部:响应专用
实体首部:描述主体的长度和内容等;或者资源本身。
扩展首部:扩展时用

实体主体:

可选;主要是http要传输的内容

star Huang wechat
my wechat public welcomes to your attention