前端面试之HTTP请求的过程与原理
日期:2020-05-19
来源:程序思维浏览:2345次
HTTP是一个简单的请求-响应协议,它通常运行在TCP之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。那么HTTP的请求原理是什么呢?
一个完整的HTTP请求过程,通常有下面7个步骤:
1)建立TCP连接。
2)Web浏览器向Web服务器发送请求命令。
3)Web浏览器发送请求头信息。
4)Web服务器应答。
5)Web服务器发送应答头信息。
6)Web服务器向浏览器发送数据。
7)Web服务器关闭TCP连接。
一个HTTP请求一般由四个部分组成:
1)HTTP请求的方法或动作,比如是GET请求还是POST请求。
2)正在请求的URL,就是请求的地址(我们输入的一般是网址)。
3)请求头,包含一些客户端环境信息,身份验证信息等。
4)请求体,也就是请求正文,请求正文中可以包含客户提交的查询字符信息,表单信息等等。
HTTP请求的两种方式:
GET请求:一般用于信息获取,使用URL传递参数,对所发送信息的数量也有限制,一般在2000个字符,GET请求一般用于获取信息,换句话说,就是查询,查询不会影响数据本身。但是GET请求发送的信息对任何人都是可见的,这样对数据的保密性就比较低了。
POST请求:一般用于修改服务器上的资源。对所发送信息的数量无限制。通过POST方法一般用来从表单发送数据,这些对数据对其他人是不可见的,所以相对于GET请求来说保密性就高得多。
HTTP应用场景
HTTP诞生之初主要是应用于WEB端内容获取,那时候内容还不像现在这样丰富,排版也没那么精美,用户交互的场景几乎没有。对于这种简单的获取网页内容的场景,HTTP表现得还算不错。但随着互联网的发展和WEB2.0的诞生,更多的内容开始被展示(更多的图片文件),排版变得更精美(更多的CSS),更复杂的交互也被引入(更多的jS)。用户打开一个网站首页所加载的数据总量和请求的个数也在不断增加。
今天绝大部分的门户网站首页大小都会超过2M,请求数量可以多达100个。另一个广泛的应用是在移动互联网的客户端APP,不同性质的APP对HTTP的使用差异很大。对于电商类APP,加载首页的请求也可能多达10多个。对于微信这类IM,HTTP请求可能仅限于语音和图片文件的下载,请求出现的频率并不算高。
我们输入网址发生了什么?
当我们输入 www.lucklnk.com 会发生什么?
1.浏览器输入 www.lucklnk.com ,HTTP 客户端发起一个请求,DNS 进行域名解析 URL 对应的 IP 地址。
2.解析出 IP 地址后,根据该 IP,建立服务器指定端口80 的TCP 连接。
3.HTTP 服务器端收到请求后,发送一个状态行 HTTP/1.1 200 和响应消息
4.客户端与服务器断开 TCP 连接。
5.浏览器将响应报文信息显示出来。
一个完整的HTTP请求过程,通常有下面7个步骤:
1)建立TCP连接。
2)Web浏览器向Web服务器发送请求命令。
3)Web浏览器发送请求头信息。
4)Web服务器应答。
5)Web服务器发送应答头信息。
6)Web服务器向浏览器发送数据。
7)Web服务器关闭TCP连接。
一个HTTP请求一般由四个部分组成:
1)HTTP请求的方法或动作,比如是GET请求还是POST请求。
2)正在请求的URL,就是请求的地址(我们输入的一般是网址)。
3)请求头,包含一些客户端环境信息,身份验证信息等。
4)请求体,也就是请求正文,请求正文中可以包含客户提交的查询字符信息,表单信息等等。
HTTP请求的两种方式:
GET请求:一般用于信息获取,使用URL传递参数,对所发送信息的数量也有限制,一般在2000个字符,GET请求一般用于获取信息,换句话说,就是查询,查询不会影响数据本身。但是GET请求发送的信息对任何人都是可见的,这样对数据的保密性就比较低了。
POST请求:一般用于修改服务器上的资源。对所发送信息的数量无限制。通过POST方法一般用来从表单发送数据,这些对数据对其他人是不可见的,所以相对于GET请求来说保密性就高得多。
HTTP应用场景
HTTP诞生之初主要是应用于WEB端内容获取,那时候内容还不像现在这样丰富,排版也没那么精美,用户交互的场景几乎没有。对于这种简单的获取网页内容的场景,HTTP表现得还算不错。但随着互联网的发展和WEB2.0的诞生,更多的内容开始被展示(更多的图片文件),排版变得更精美(更多的CSS),更复杂的交互也被引入(更多的jS)。用户打开一个网站首页所加载的数据总量和请求的个数也在不断增加。
今天绝大部分的门户网站首页大小都会超过2M,请求数量可以多达100个。另一个广泛的应用是在移动互联网的客户端APP,不同性质的APP对HTTP的使用差异很大。对于电商类APP,加载首页的请求也可能多达10多个。对于微信这类IM,HTTP请求可能仅限于语音和图片文件的下载,请求出现的频率并不算高。
我们输入网址发生了什么?
当我们输入 www.lucklnk.com 会发生什么?
1.浏览器输入 www.lucklnk.com ,HTTP 客户端发起一个请求,DNS 进行域名解析 URL 对应的 IP 地址。
2.解析出 IP 地址后,根据该 IP,建立服务器指定端口80 的TCP 连接。
3.HTTP 服务器端收到请求后,发送一个状态行 HTTP/1.1 200 和响应消息
4.客户端与服务器断开 TCP 连接。
5.浏览器将响应报文信息显示出来。
精品好课