HTTP01
计算机网络知识点补充
网络协议体系结构
网络协议包括:语法;语义;同步。
osi有七层协议体系结构;tcp/ip有四层体系结构。
四层(三层):应用层;运输层;网际层;网络接口层(无具体内容)。
折中采用五层:应用层;传输层;网络层;数据链路层;物理层。
应用层;应用层协议如http;ftp等
传输层;TCP;UDP协议
网际层;IP协议
链路层:网络特有的链路接口
物理层:物理网络硬件
文档类型区别
- 静态文档:由编写人员编写后基本不再改动
- 动态文档:由后台程序自动生成后不再变动
- 活动文档:页面实时更新(通过服务器推送或活动文档技术)
鼠标点击链接后
亦或是在搜索框中输入URL后:(以www.baidu.com为例)
- 浏览器分析链接指向页面的URL
- 浏览器向DNS请求解析网站www.baidu.com的IP地址
- 域名系统DNS解析出百度服务器的IP地址为xxx.xxx.x.xxx
- 浏览器与服务器建立TCP连接(通过80端口)
- 浏览器发出取文件命令: GET /baiduxx/index.html
- 服务器www.baidu.com给出响应,将文件index.html发送给浏览器
- 释放TCP连接
- 浏览器显示index.html的内容(浏览器渲染步骤)
- 构建DOM树:从上到下解析HTML文档生成DOM节点树
- 构建CSSOM树:加载解析样式生成CSSOM树
- 执行javascript:加载执行javascript代码
- 构建渲染树:根据DOM树和CSSOM树生成渲染树;
- 布局:根据渲染树将节点树的每一个节点布局在屏幕上的正确位置
- 绘制:遍历渲染树绘制所有节点,并应用适当的样式。(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版本,数字状态码,以及原因短语。
方法:
- 安全方法:GET与HEAD方法都被认为是安全的;因为不会在服务器上产生结果。
- 使用目的:允许HTTP应用程序开发者通知用户什么时候可能引发某些动作的不安全方法。
- 常用HTTP方法:(服务器并不一定都实现了)
- GET 向服务器获取一份文档
- HEAD 只从服务器获取文档的首部
- POST 向服务器发送需要处理的数据
- PUT 将请求的主体部分存储在服务器上
- TRACE 对可能经过代理服务器传送到服务器上去的报文进行跟踪
- OPTIONS 决定可以在服务器上执行哪些方法
- DELETE 从服务器上删除一份文档
状态码:表明事务处理结果
- 100-199:信息性状态码 【100 continue 请客户端继续进行;101】
- 200-299:成功状态码 【200 ok ;201 created ;202 accepted;203 】
- 300-399:重定向状态码【300…】
- 400-499:客户端错误状态码【404…】
- 500-599:服务器错误状态码
首部:
名值对的列表;向请求和响应报文中添加了一些附加信息。某一首部行过长可以使用前端有空格或制表符的首部延续行。
分类:
通用首部:实现通用功能;如date
请求首部:请求专用
响应首部:响应专用
实体首部:描述主体的长度和内容等;或者资源本身。
扩展首部:扩展时用
实体主体:
可选;主要是http要传输的内容