一次url访问 经过了什么

url访问

1.url是啥
URL(Uniform Resource Locator),统一资源定位符,用于定位互联网上资源,俗称网址。
比如 http://www.w3school.com.cn/html/index.asp,遵守以下的语法规则:

scheme://host.domain:port/path/filename
各部分解释如下:
scheme - 定义因特网服务的类型。常见的协议有 http、https、ftp、file,其中最常见的类型是 http,而 https 则是进行加密的网络传输。
host - 定义域主机(http 的默认主机是 www)
domain - 定义因特网域名,比如 w3school.com.cn
port - 定义主机上的端口号(http 的默认端口号是 80)
path - 定义服务器上的路径(如果省略,则文档必须位于网站的根目录中)。
filename - 定义文档/资源的名称

2.dns是啥
通过域名找到它的ip地址

3.三次握手
通过dns找到ip地址后去访问服务器
这个时候需要tcp三次握手协议(为了避免无效的访问请求访问服务器端造成错误的结果)
一次url访问 经过了什么_第1张图片
第一次握手: 客户端携带 syn=1 (syn:同步) 、req=x(占32位,用来标识从TCP源端向目的端发送的字节流,发起方发送数据时对此进行标记) 发送给服务器端,告诉服务器端已经准备好了可以发送
第二次握手:服务器端携带 syn=1 、req=y、ack=x+1(确认req上是否有效)给客户端 告诉客户端我已经准备好接受
第三次握手:客户端携带req=z、ack=y+1给服务器端,然后确认连接

4.发送 HTTP 请求
请求报文由请求行(request line)、请求头(header)、请求体

5.服务器端webServer
代表:tomcat、nginx、ISS 等
将请求分配到对应mvc的Controller层 完成数据交互

6.http响应报文
响应报文由响应行(request line)、响应头部(header)、响应主体三个部分组成
响应行:告诉浏览器这次请求的结果和返回携带的数据
1xx:指示信息–表示请求已接收,继续处理。
2xx:成功–表示请求已被成功接收、理解、接受。
3xx:重定向–要完成请求必须进行更进一步的操作。
4xx:客户端错误–请求有语法错误或请求无法实现。
5xx:服务器端错误–服务器未能实现合法的请求。

(2) 响应头部包含响应报文的附加信息,由 名/值 对组成

(3) 响应主体包含回车符、换行符和响应返回数据,并不是所有响应报文都有响应数据
7.tcp四次挥手
由于TCP连接是双向互通的,因此,每个方向都必须要单独进行关闭,这一原则是当一方完成数据发送任务后,发送一个FIN来终止这一方向的连接,

收到一个FIN只是意味着这一方向上没有数据流动了,即不会再收到数据了,但是在这个TCP连接上仍然能够发送数据,直到这一方向也发送了FIN。

首先进行关闭的一方将执行主动关闭,而另一方则执行被动关闭,上图描述的即是如此。
(1)第一次挥手:Client发送一个FIN,用来关闭Client到Server的数据传送,Client进入FIN_WAIT_1状态。
(2)第二次挥手:Server收到FIN后,发送一个ACK给Client,确认序号为收到序号+1(与SYN相同,一个FIN占用一个序号),Server进入CLOSE_WAIT状态。
(3)第三次挥手:Server发送一个FIN,用来关闭Server到Client的数据传送,Server进入LAST_ACK状态。
(4)第四次挥手:Client收到FIN后,Client进入TIME_WAIT状态,接着发送一个ACK给Server,确认序号为收到序号+1,Server进入CLOSED状态,完成四次挥手。
一次url访问 经过了什么_第2张图片

你可能感兴趣的:(基础)