参考:《TCP/IP网络编程》
①:查找域名对应的IP地址,先在浏览器缓存中查找,浏览器会缓存一段时间内的DNS记录,如果浏览器缓存中没有,则在hosts文件中查找,hosts文件会将一些常用的网址域名与其对应的IP地址建立一个关联“数据库”,如果hosts文件中没有相应的记录,则去路由器缓存中查找,如果路由器缓存中也没有,再去分配给该ISP的域名服务器中查找IP地址,如果该域名服务器中没有相应记录,则去根域名服务器,一步一步查找域名对应的IP地址。
②:查找到对应的IP地址之后,便与该地址建立TCP连接,动作为三次握手。
③:TCP连接建立之后,发送http请求报文,请求报文由请求行,首部字段,消息体,请求行包括方法,URL和版本;响应报文首部由状态行,消息头,消息体,状态行包括状态码,版本,状态原因语句。无论请求报文还是响应报文,在首部字段之后,包含一个空行。
④:如果页面发生跳转,则服务器发回一个重定向响应,然后web浏览器跟随这个重定向,再次发送http请求;否则,如果页面不跳转的话,web服务器直接处理这个HTTP请求,并发会响应。
⑤:关闭TCP连接。
URL包括哪几个部分:
参考https://blog.csdn.net/u013344815/article/details/55194558
1、协议部分
2、域名部分
3、端口号
4、虚拟目录
5、文件名部分,从最后一个/开始到?是要访问的服务器的文件名。
6、参数部分,从?开始的部分为参数部分,可以有多个参数,用&作为分隔符。