http --- > Web页面请求的历程(如何根据URL寻找到需要的资源)

HTTP概况:

// 超文本传输协议(HyperText Transfer Protocol,HTTP):是Web的应用层协议,它是Web的核心.
// 客户端和服务器运行在不同的端系统中,通过交换HTTP报文进行会话
// HTTP定义了这些报文的结构以及客户和服务器进行报文交换的方式
// HTTP定义了Web客户向Web服务器请求Web页面的方式,以及服务器向客户传送Web页面的方式

Web术语:

// Web页面(Web page)(也叫文档)是由对象组成.
// 一个对象只是一个文件,诸如:一个HTML文件、一个JPEG图形、一个Java小程序,这些对象可以通过一个URL地址寻找
// 多数Web页面含有一个HTML基本文件以及多个引用对象
// URL的组成:存放对象的主机名和对象的路径名

用户请求一个Web页面:

// 当用户请求一个Web页面时(如:输入url,回车)
// 浏览器向服务器发出对该页面中所包含对象的HTTP请求,服务器收到请求并用包含这些对象的HTTP相应报文进行相应
// HTTP使用TCP作为它的支撑运输协议
// HTTP客户首先发起一个与服务器的TCP连接
// 一旦建立连接,该浏览器和服务器进程就可以通过套接字接口访问TCP
// 客户端的套接字接口是客户进程与TCP连接之间的门
// 客户向它的套接字接口发送HTTP请求并从它的套接字接口接收HTTP响应报文

整体来说:就是当客户键入url时:

  1. DNS根据输入的URL得到对应的ip地址,并获得端口号
  2. 建立TCP连接(3次握手)
  3. 建立成功后,http生成请求报文通过套接字将请求报文托付给TCP
  4. 服务器端处理请求,并发送响应
  5. 浏览器接收到响应后展示对应的资源

TCP的三次握手:

// TCP被称为面向连接的,这是因为在一个应用进程可以开始向另一个应用进程发送数据之前,这两个进程必须先相互"握手"
// syn(synchronize sequence numbers):同步序列号,ack确认号(需要确认的下一个syn),
// 第一次:请求方发出一个syn = i,
// 第二次:服务方收到syn=i, 返回一个ack = i+1, syn =j 的分组
// 第三次:请求方收到ack = i+1, syn =j的分组,发送一个ack=j+1 ,完成握手 

参考《计算机网络-自顶向下方法》(原书第6版)P65~P66

猜你喜欢

转载自blog.csdn.net/piano9425/article/details/93379278
今日推荐