1.DNS域名解析
客户端输入域名后,由DNS服务器来将域名解析成对应服务器的IP地址
2.建立TCP连接;
获得服务器IP之后,就需要三次握手的协议才能建立连接
1)客户端发送SYN包请求,等待服务器确认
2)服务器确认收到SYN包请求后,同时自己也返回一个包给客户端,即返回SYN+ACK
3)客户端收到SYN+ACK包之后,返回给服务器一个确认包ACK包表示收到,然后双方达成协议,建立连接
3.发送HTTP请求;
与服务器建立连接之后,就可以向服务器发送请求了,请求需要遵循http协议
4.服务器处理请求;
被请求的服务器解析用户请求的有哪些资源,通过服务器返回数据给客户端
5.返回响应结果;
给客户端返回请求的状态码,通过状态码可以知道服务器端的处理是否正常
常见状态码:状态码
100 Continue 继续,客户端应当继续发送请求。这个临时响应是用来通知客户端它的部分请求已经被服务器接收,且仍未被拒绝
200 OK 请求成功,表示正常状态
301 Moved Permanently 请求的网页已永久移动到新位置。
400 Bad Request 语义有误,当前请求无法被服务器理解。或者是请求参数有错误
404 Not Found 请求失败,请求所希望得到的资源未被在服务器上发现。多数情况是找不到输入域名对应的网页。
500 Internal Server Error 一般来说,这个问题都会在服务器端的源代码出现错误时出现。。
6.浏览器渲染:
返回成功之后,浏览器拿到请求页面的代码,将其解析渲染出来。解析和渲染的过程主要由浏览器的渲染引擎实现
7. 断开连接:
数据传输完毕,需要断开tcp连接,此时tcp发起4次挥手
1)客户端发送给服务器,告诉服务器需要关闭tcp了
2)服务器发送给客户端,告诉客户端我准备一下就关闭
3)服务器发送给客户端,告诉客户端我已经准备好关闭了
4)客户端发送给服务器,告诉服务器我也准备好关闭了。