| 状态码 | 含义 |
|---|---|
| 1xx Informational(信息性状态码) | 接受的请求正在处理 |
| 2xx Success(成功状态码) | 请求正常处理完毕 |
| 3xx Redirection(重定向) | 需要进行附加操作以完成请求 |
| 4xx Client error(客户端错误) | 客户端请求出错,服务器无法处理请求 |
| 5xx Server Error(服务器错误) | 服务器处理请求出错 |
GET和POST是HTTP协议中的两种发送请求的方法,HTTP的底层是TCP/IP,所以GET和POST的底层也是TCP/IP,也就是说,GET/POST都是TCP链接。GET和POST能做的事情是一样一样的。你要给GET加上request body,给POST带上url参数,技术上是完全行的通的。
1. 传参方式不同
2. 传输数据大小
GET方法提交的数据大小有限制,不能大于2KB(因为浏览器对URL的长度有限制),而POST方法提交
数据没有限制。
3. 后退页面
get后退不会有影响,post后退会重新进行提交
4. 缓存
GET请求能够被缓存,会保存在浏览器的浏览记录中,以GET请求的URL能够保存为浏览器书签,Post请求不具有这些功能。
5. 字符类型
get只支持ASCII字符,post没有字符类型限制
6. GET产生一个TCP数据包;POST产生两个TCP数据包。
7. 安全性
GET比POST更不安全
- URL解析
- DNS域名解析
- TCP连接
- Http请求
- 响应请求
- 页面渲染
首先判断用户输入的内容是url地址还是待搜索关键字,然后做出响应的操作。
解析过程大概如下:
1、搜索浏览器DNS缓存,浏览器缓存会维护一张域名跟ip地址的映射关系表
2、如果没有命中则搜索操作系统的DNS缓存
3、如果还是没有命中,则操作系统将域名发送到本地域名服务器,本地域名服务器通过递归的方式查询自己的DNS缓存,查找
到后,将结果返回
4、若本地域名服务器的DNS缓存也没有命中,则本地域名服务器向上级域名服务器进行迭代查询。
第一步 本地域名服务器先向根域名服务器发起请求,根域名服务器将顶级域名服务的地址返回给本地域名服务器
第二步 本地域名服务器根据顶级域名服务器地址向顶级域名服务器发起请求,然后得到权限域名服务器地址
第三步 本地域名服务器通过权限域名服务器地址向权限域名服务器发起请求,然后得到该域名的ip地址
5、本地域名将IP地址返给操作系统,并且本地域名将该IP缓存起来
6、操作系统将IP返回给浏览器,并将ip缓存起来
7、浏览器得到ip地址,并将ip缓存起来
在客户端发送数据给服务端之前,会发起TCP三次握手以同步客服端和服务端的序列号和确认号,并交换TCP窗口大小信息
完成三次握手,客户端和服务端可以开始传输数据
tcp建立成功之后,客户端发送http请求报文到服务端
http请求报文有四部分组成:请求行、请求头、空行、消息体
当服务器接收到客户端的请求之后,会进行逻辑处理,处理完之后,会返回给客户端一个http响应数据,
响应数据包括三部分:状态行、响应头、响应正文
当浏览器接收到服务器的响应数据,会解析html,请求js、css等资源,最后进行页面渲染,呈现给用户。
页面渲染大概分为五步:
(1)根据HTML文件解析出DOM Tree
(2)根据CSS解析出 CSSOM Tree(CSS规则树)
(3)将 DOM Tree 和 CSSOM Tree合并,构建Render tree(渲染树)
(4)reflow(重排):Layout根据Render tree进行节点信息计算
(5)repaint(重绘):Painting根据计算好的信息绘制整个页面
OSI引入了服务、接口、协议、分层的概念,TCP/IP借鉴了OSI的这些概念建立TCP/IP模型。
OSI先有模型,后有协议,先有标准,后进行实践;而TCP/IP则相反,先有协议和应用再提出了模型,且是参照的OSI模型。
OSI是一种理论下的模型,而TCP/IP已被广泛使用,成为网络互联事实上的标准。
TCP:transmission control protocol 传输控制协议;UDP:user data protocol 用户数据报协议
| OSI七层网络模型 | TCP/IP四层概念模型 | 对应网络协议 |
|---|---|---|
| 应用层(Application) | 应用层 | HTTP/FTP/TFTP… |
| 表示层(Presentation) | 同上 | Telnet… |
| 会话层(Session) | 同上 | SMTP/DNS |
| 传输层(Transport) | 传输层 | TCP/ UDP |
| 网络层(Network) | 网络层 | IP/ ICMP… |
| 数据链路层(Data Link) | 数据链路层 | FDDI… |
| 物理层(Physical) | 同上 | IEEE802.1A/ IEEE802.2到IEEE802.11 |