前端面试之HTTP请求的过程与原理

来源:程序思维浏览: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.浏览器将响应报文信息显示出来。
精品好课
最新完整React视频教程从入门到精通纯干货纯实战
React是目前最火的前端框架,就业薪资很高,本课程教您如何快速学会React并应用到实战,教你如何解决内存泄漏,常用UI库的使用,自己封装组件,正式上线白屏问题,性能优化等。对正在工作当中或打算学习React高薪就...
React实战视频教程仿京东移动端电商
React是前端最火的框架之一,就业薪资很高,本课程教您如何快速学会React并应用到实战,对正在工作当中或打算学习React高薪就业的你来说,那么这门课程便是你手中的葵花宝典。
HTML5基础入门视频教程易学必会
HTML5基础入门视频教程,教学思路清晰,简单易学必会。适合人群:创业者,只要会打字,对互联网编程感兴趣都可以学。课程概述:该课程主要讲解HTML(学习HTML5的必备基础语言)、CSS3、Javascript(学习...
jQuery视频教程从入门到精通
jquery视频教程从入门到精通,课程主要包含:jquery选择器、jquery事件、jquery文档操作、动画、Ajax、jquery插件的制作、jquery下拉无限加载插件的制作等等......
最新完整React+VUE视频教程从入门到精,企业级实战项目
React和VUE是目前最火的前端框架,就业薪资很高,本课程教您如何快速学会React和VUE并应用到实战,教你如何解决内存泄漏,常用库的使用,自己封装组件,正式上线白屏问题,性能优化等。对正在工作当中或打算学习Re...
VUE2+VUE3视频教程从入门到精通(全网最全的Vue课程)
VUE是目前最火的前端框架之一,就业薪资很高,本课程教您如何快速学会VUE+ES6并应用到实战,教你如何解决内存泄漏,常用UI库的使用,自己封装组件,正式上线白屏问题,性能优化等。对正在工作当中或打算学习VUE高薪就...
Vue2+Vue3+ES6+TS+Uni-app开发微信小程序从入门到实战视频教程
2021年最新Vue2+Vue3+ES6+TypeScript和uni-app开发微信小程序从入门到实战视频教程,本课程教你如何快速学会VUE和uni-app并应用到实战,教你如何解决内存泄漏,常用UI库的使用,自己...
HTML5视频播放器video开发教程
适用人群1、有html基础2、有css基础3、有javascript基础课程概述手把手教你如何开发属于自己的HTML5视频播放器,利用mp4转成m3u8格式的视频,并在移动端和PC端进行播放支持m3u8直播格式,兼容...
收藏
扫一扫关注我们