http协议
1.在浏览器输入地址后会发生什么
①DNS解析,获取ip地址
②浏览器需要和服务器建立联系(TCP/IP)(三次握手)
③向服务器发生请求 (http协议)
④服务器处理请求,返回响应(http协议)
⑤浏览器将响应的页面渲染
⑥断开和服务器的连接(四次挥手)
2.客户端如何和服务器建立(断开)连接
三次握手是客户端和服务器建立**连接**的过程
①客户端向服务器发送连接请求(SYN)
②服务器收到连接请求,向客户端返回消息(SYN,ACK)
③客户端向服务器发送同意连接的信息(ACK)
四次挥手是客户端和服务器建立**断开**的过程
①客户端向服务器发送请求,通知服务器数据发送完毕,请求断开连接(FIN)
②服务器向客户端返回数据,知道了(ACK)
③服务器向客户端返回数据,收完了,可以断开连接了(FIN,ACK)
④客户端向服务器发数据,可以断开了(ACK)
网络通信的过程由四层组成
- 应用层 ---软件层面,浏览器,服务器都属于
- 传输层 ---负责对数据拆分,将大数据拆分为小数据
- 网络层 ---负责给数据包,添加信息
- 数据链路层 ---传输信息
服务器
一个服务器的主要功能
(1)可以接收到浏览器发送的请求报文
(2)可以向浏览返回响应报文
报文
- · 浏览器的服务器之间通信给予请求和响应的
- 浏览器向服务器发送请求(request)
- 服务器向浏览器返回响应(response)
- 服务器给浏览器返回响应,传递的信息就是报文
- HTTP协议是对报文的格式进行规定的
请求报文的格式:
- 请求首行 请求方式 + 文件地址 + 协议版本
- 请求头 (名值对)
- 空行
- 请求体 get请求没有
get请求
get请求用来向服务器请求获得资源 一般查询资源
get通过查询字符串将数据发送给服务器
弊端
(1)字符串会在地址栏中展示出来 安全性低
(2)因为URL地址栏有限制长度 无法上传多数据
post请求
poat请求用来向服务器发送数据 一般提交表单
post通过载荷中的请求体发送数据给服务器
请求体不会被数据长度限制 发送信息给服务器最好post
响应报文的格式:
-
响应首行
-
响应头(名值对)
-
空行
-
响应体
响应首行中包含了响应状态码,响应状态码的规则如下:
·响应状态码的规则:
-
1xx:请求处理中
-
2xx:表示成功
-
3xx:表示请求的重定向
-
4xx:表示客户端的错误
-
5xx:表示服务器的错误