1.当在浏览器中输入地址后发生了什么?
1.dns 解析,输入网址后进入一个dns服务器,会对输入的域名解析成ip地址
2.浏览器和服务器连接 tcp/ip 3次握手
3.浏览器发送请求报文到服务器
4.服务器处理请求,返回响应报文到浏览器
5.浏览器发生变化,页面渲染
6.浏览器和服务器断开连接 4次挥手
2.一个网址分别代表什么
https://lilichao.com/hello/index.html
https:// 协议名
lilichao.com域名
/hello/index.html 网站资源路径
3.客户端如何和服务器建立连接 3次握手
客户端向服务器发送连接请求
SYN
服务器收到连接请求,向客户端返回消息
ACK SYN
客户端向服务器发送同意连接消息
ACK
客户端对服务器说我们连接吧,服务器收到了连接的消息,说好的,返回消息给客户端,客户端收到消息,说好的
4.客户端和服务器断开连接 4次挥手
客户端向服务器发送请求,通知服务器数据发送完毕,请求断开连接
FIN(final)
服务器向客户端返回数据,知道了
ACK
服务器向客户端返回数据,收完了,可以断开连接
FIN ACK
客户端向服务器发数据,可以断开了
ACK
正常情况下 客户端向服务器发送数毒,突然要断开了,客户端就向服务器发消息 我发完了,请求断开
服务器就收回数据,表示知道了,然后 服务器 表示收完了,可以断开了, 客户端向服务器发消息说 好,可以断开了
5.TCP/IP协议族
-TCP/IP协议族中包含了一组协议,这组协议包含了互联网通信的所有细节
-网络通信的过程,由4层注组成
应用层 | 软件的层面,浏览器 服务器 都属于应用层 |
传输层 | 负责对数据进行拆分,吧大数据分成一个一个小包 |
网络层 | 负责给数据包,添加信息 |
数据链路层 | 传输信息 |
发数据 浏览器中的数据 首先在应用层传输给传输层,在传输层拆成一个个小包,在网络层填写信息,在数据联络层就通过数据链路层发快递,给服务器
6.HTTP协议
http协议是应用层的协议,用来规定客户端和服务器间通信的报文格式
7.报文
-浏览器和服务器之间通信是基于请求和响应的
-浏览器向服务器发送请求(request)
-服务器向浏览器返回响应(respose)
-浏览器和服务器之间的通信就相当于 写信和回信,htpp协议就是写信的格式,这个信在http协议中被称为报文
8.请求报文:请求标头
-请求报文简介
-请求报文格式
请求首行 | 1.请求的方式 |
2.请求资源的路径 ?后面的内容叫查询字符串,名值对结构,用=连接,多个值间用分割 | |
3.协议的版本 如 HTTP/1.1 | |
请求头 | 名值对结构,有Accept 浏览器可接收文件类型 Acce[t-Encoding 浏览器允许的压缩的编码 User-Agent用户代理,描述浏览器信息的字符串 |
空行 | 分隔请求头和请求体 |
请求体 | post请求通过请全体发送数据 |
get请求通过查询字符串将数据发送给服务器
post请求通过请求体来发送数据
9.响应报文:响应标头
-响应报文简介
-响应报文格式
响应首行 | 1.协议的版本 如 HTTP/1.1 |
2.响应状态码 200 | |
3.对响应状态码的描述 如ok | |
响应头 | 名值对结构,用来告诉服务器响应的内容 Content-Type 描述响应体的类型 Content-Length 描述响应体的大小 例如 :Content-Type : text/html; charest=UTF-8 Conten-Length:2017 |
空行 | 分隔请求头和请求体 |
响应体 | 服务器返回给客户端的内容 |
响应状态码的规则
1xx 请求处理中
2xx 表示成功
3xx 表示请求的重定向
4xx 表示客户端错误
5xx 服务器错误
10.路由和中间件
路由,就是终点
app. xx请求
中间件
app.use
都是一个路径,一个参数
11.路径 path ,fs 处理磁盘文件