1 对网站进行域名解析,得到IP地址。 2 通过IP向WEB服务器发起TCP请求,经过三次握手后建立TCP连接 3 浏览器发起HTTP请求 4 服务器响应HTTP请求,返回HTML代码 5 浏览器解析HTML代码,并请求HTML代码中的资源 6 浏览器利用自己内部的工作机制,把请求到的静态资源和HTML代码进行渲染,呈现给用户。 7 关闭TCP连接
第一次握手:客户端发送SYN包(seq=x)到服务器,并进入SYN_SEND状态,等待服务器确认 。 第二次握手:服务器收到SYN包,必须确认客户的SYN(ACK=x+1),同时自己也发送一个SYN包(seq=y),即SYN+ACK包,此时服务器进入SYN_RECV状态 第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ACK=y+1),此包发送完毕,客户端和服务器进入ESTABLISHD状态,完成三次握手。 握手过程传送的包中不包含数据,三次握手完毕之后,客户端与服务器才正式开始传送数据。理想状态下,TCP连接一旦建立,在通信上方中的任何一方主动关闭连接之前,TCP连接都将被一直保持下去。
第一次挥手:主动关闭方发送一个FIN,用来关闭主动方到被动关闭方的数据传送,也就是主动关闭方告诉被动关闭方,我已经不会再给你发送消息了(当然,在FIN包发送之前发送出去的数据,如果没有收到对应的ACK确认报文,主动关闭方依然会重发这些数据),但此时主动关闭方还可以接收数据。 第二次挥手:被动关闭方收到FIN包后,发送一个ACK给对方,确认序号+1(与SYN相同,一个FIN占用一个序号)。 第三次挥手:被动关闭方发送一个FIN,用来关闭被动关闭方到主动关闭方的数据传送,就是告诉主动关闭方,我的数据也发送完了,不会再给你发送数据了。 第四次挥手:主动关闭方收到FIN后,发送一个ACK给被动关闭方,确认序号为收到序号+1,至此,完成四次挥手。
表明响应结果被正常处理
客户端发来的请求被服务端正常处理
代表服务器接收的请求已成功处理,返回的响应报文中不包含实体的主体部分。如:浏览器不会更新。
表示客户端进行了范围请求,服务器成功执行了这一GET请求。
表明浏览器需要执行某些特殊的处理以正确处理请求。
永久性重定向。表示请求的资源已被分配了新的URI。
临时性重定向。表示请求的资源已被分配了新的URI,用户本次使用。禁止POST变成GET。
表示请求对应的资源存在着另一个URI,应使GET方法定向获取请求的资源。
表示客户端发送附带条件的请求时,服务器允许请求访问资源。
临时重定向。不会从POST变成GET。
表示请求报文中存在语法错误。
表示发送的请求需要有通过HTTP认证的认证信息,若之前已经进行过一次请求,则表示用户认证失败。
表示对资源的访问被服务器拒绝了。
表示服务器上无法找到请求的资源。
表示服务器在执行请求时发生了错误。
表示服务器暂时处于超负载或正在进行停机维护,现在无法处理请求。
URI Uniform Resource Identifier 统一资源标识符 URL Uniform Resource Locator 统一资源定位符 URN Uniform Resource Name 统一资源名称