应用层
-
uri和url的区别:uri是统一资源标识符 url是统一资源定位符,统指绝对路径 url是uri的子集
-
dns的工作原理?主要解析过程?
客户端查询域名的ip地址的过程:查询本地hosts文件是否有网址映射关系 -> 查询本地dns解析器缓存 -> 查询本地dns服务器 -> 本地dns服务器访问根服务器,从根服务器中查找对应的顶级域名服务器并继续向下查找域名服务器的ip。
dns默认使用udp协议
-
用户输入网址到显示对应页面的全过程
用户输入网址 -> DNS解析 -> TCP连接 -> 发起HTTP请求 -> 处理请求 -> 浏览器渲染 -> TCP连接断开
-
http头部包含哪些信息
- 通用首部字段:请求和响应都可以使用的首部,与报文相关的最基本的信息。
- 请求首部字段:仅在请求中使用的首部。
- 响应首部字段:仅在响应中使用的首部。
- 实体首部字段:用于应对实体部分的首部,一般是对实体内容进行说明
-
http方法了解哪些
- get:请求指定的页面信息并返回内容,通常只用于读取数据
- head:类似于get请求,但返回的响应中没有具体内容,只用于获取报头
- post:向指定资源提交数据进行处理请求,数据被包含在请求体中。
- put:替换指定资源,没有就新增
- delete:请求服务器删除url标识的资源数据
- options:向服务器发送该方法,会返回对指定资源所支持的http请求方法
-
http状态码了解哪些
- 1xx:提示信息,目前是协议处理的中间状态,还需要后续操作 正在处理
- 2xx:成功,报文已经收到并被正确处理 常见:200(响应头有body数据) 204(响应头无body数据) 206(用于分块下载和断点续传,表示返回的body数据只是一部分)
- 3xx:重定向,资源位置发生变动,需要客户端重新发送请求 常见:301(永久重定向,请求的资源已经不存在,需要用新的url访问) 302(临时重定向) 304(缓存重定向,可以继续使用缓存资源)
- 4xx:客户端错误,请求报文有误,服务器无法处理 常见:400(客户端请求的报文有错误) 403(服务器禁止访问资源) 404(表示请求的资源在服务器上不存在或未找到)
- 5xx:服务器错误,服务器在处理请求时内部发生了错误 常见:500(笼统通用的错误码,服务器发生错误) 501(客户端请求的功能还不支持) 502(客户端请求的功能还不支持) 503(服务器当前很忙,暂时无法响应客户端)
-
get和post的区别
- get携带的参数放在url上,post携带的参数放在body内
- get请求参数以url形式完整保留在浏览器记录中,存在安全问题,post请求参数不会被浏览器记录
- post可以进行复杂的加密,get不行
- get只支持ASCII字符格式的参数,post无限制
- get提交的数据大小有限制,post无限制
- get方法具有幂等性,post不具有
- post方法有时会发送两个tcp数据包,即先发送header再发送data
-
http和https的区别
http:
- 使用明文通信,内容可能会被窃听
- 不验证通信方的身份,通信方的身份有可能遭遇伪装
- 无法证明报文的完整性,报文可能被篡改
https: - https发送时,request通过ssl/tls进行处理,然后再通过tcp进行发送;数据接收时也统一需要处理。
-
https的加密方式
- 数据加密
- 数字证书认证
- 通过ssl/tls报文摘要功能检验报文完整性
数据加密的方式:对称加密和非对称加密(对称加密指加密和解密使用同一密钥,非对称就iami指加密和解密使用不同的密钥)
https的加密方式:
-
发送方获取接收方非对称加密的公开密钥
-
通过非对称加密的公开密钥对对称加密的密钥进行加密
-
将加密后的密钥发送给接收方
-
接收方使用非对称加密的私钥对对称加密的密钥进行解密
-
双方都具有对称加密的密钥,相互之间都可以通信
-
http是不保存状态的协议,如何保存用户状态?
- session的形式:
- 客户端第一次发送信息到服务器时,服务器为该客户端创建一个session对象,该session包含客户端身份信息,同时为该session生成一个sessionId
- 服务器端将sessionId分配给客户端,客户端发送请求时带有此sessionId,服务端就可以区分客户端。
- coockie的形式
- 客户端第一次发送信息到服务器时,服务器根据该客户端信息编码加密生成一个cookie
- 服务器端将cookie发送到客户端,客户端发送请求时带有此cookie,服务器就可以区分客户端。
- http不同版本的区别
- http 0.9
- http 1.0 第一个正式版本
- http 1.1 默认长连接,支持流水线,支持同时打开多个TCP连接 支持虚拟主机 新增状态码100 新增缓存处理指令max-age 不会压缩请求和响应首部 不支持有效的资源优先级
- http 2.0 采用二进制传送 支持多路复用 头部压缩 支持服务器推送
- http 3.0 使用udp作为传输层协议 quic协议保证安全性 建立连接快