浏览器输入一个http协议的url,如何定位服务资源?
1.认识URL(全站资源定位符):
注:
1.登录信息这部分在现在已经基本不使用了,因为从这里会暴露用户信息,不安全。
2.URL参数(不同的网站URL参数是不同的)格式:以英文?开始,可能有一个或多个参数,多个参数间用&进行分隔,每个参数以=进行分隔。
2.定位资源过程:
<1>浏览器向DNS服务器请求解析这个URL的域名对应的IP地址;
<2>解析出IP地址后,根据该IP地址和默认的端口(HTTP默认是80,HTTPS默认是443)和服务器建立TCP连接;
<3>浏览器发出读取文件(URL中域名后面部分对应的带层次的文件路径)的HTTP请求,该请求报文作为TCP三次握手的第三个报文的数据发送给服务器;
<4>服务器对浏览器请求作出相应,并把对应的html文本发送给浏览器;
<5>释放TCP连接
<6>浏览器解析html文本并局部渲染从而展示;
三.什么是DNS?
通俗来讲就是把网址(即域名)解析为IP地址。
人们习惯记忆域名,但机器间互相只认IP地址,域名与IP地址之间是相对应的,它们之间的转换工作称为域名解析,域名解析需要由专门的域名解析服务器来完成,整个过程是自动进行的。
域名解析协议(DNS)用来把便于人们记忆的主机域名和电子邮件地址映射为计算机易于识别的IP地址。
四.什么是TCP?(目前还未深入学习,学习后进行补充)
是一种面向连接的传输控制协议。
三次握手:
三次握手需要的信息:
ACK : TCP 协议规定, 只有 ACK=1 时有效, 也规定连接建立后所有发送的报文的ACK 必须为 1。
SYN(SYNchronization) : 在连接建立时用来同步序号。 当 SYN=1 而 ACK=0 时, 表明这是一个连接请求报文。 对方若同意建立连接, 则应在响应报文中使 SYN=1 和 ACK=1.因此, SYN 置 1 就表示这是一个连接请求或连接接受报文。
FIN (finis): 即完成, 终结的意思, 用来释放一个连接。 当 FIN = 1 时, 表明此报文段的发送方的数据已经发送完毕, 并要求释放连接。
三次握手过程:
1.首先由 Client(客户端) 发出请求连接即 SYN=1 ACK=0 (请看头字段的介绍), TCP 规定 SYN=1时不能携带数据, 但要消耗一个序号,因此声明自己的序号是 seq=x。
2.然后 Server(服务器) 进行回复确认, 即 SYN=1 ACK=1 seq=y, ack=x+1。
3.再然后 Client 再进行一次确认, 但不用 SYN 了, 这时即为 ACK=1, seq=x+1,ack=y+1.然后连接建立。