HTTP

Posted yvlian

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HTTP相关的知识,希望对你有一定的参考价值。

http是基于TCP/IP关于数据在万维网中如何通信的应用层协议。无连接、无状态

一次http的请求全过程:

一、解析URL:浏览器首先会对输入的URL进行检查,如果不合法,会把输入的文字传给默认的搜索引擎--如google、baidu;通过了URL的验证,那么可以解析得到协议(http以及https)、域名、资源等信息;

二、DNS查询:浏览器会先检查域名信息是否在缓存中;再检查域名是否在本地Hosts文件中;如果还不在,那么浏览器就会向DNS服务器发送一个查询的请求,获得目标服务器的ip地址;

三、TCP封包及传输:浏览器获得了目标服务器的ip、端口,浏览器会调用库函数socket,生成一个TCP流套接字,也就是TCP封包;TCP封包完成之后,就可以传输数据了,浏览器和服务器通过TCP三次握手建立连接,后面就可以请求服务器资源了。

四、服务器接受请求并响应:http有很多请求方法,比如:GET/POST/PUT/DELETE等等,我们浏览器输入URL这种,是GET方法;服务器接受GET请求,服务器根据请求信息,获得相应的资源内容。

五、释放TCP连接:

六、浏览器解析并渲染:浏览器从服务器拿到了想要的资源,如html页面,首先对html文档进行解析,生成DOM节点树,然后加载页面的外部资源,如css、js、img等;最后遍历DOM树,并计算每个节点的样式,最终完成渲染,变成我们的页面;

 

以上是关于HTTP的主要内容,如果未能解决你的问题,请参考以下文章

Flutter 报错 DioError [DioErrorType.DEFAULT]: Bad state: Insecure HTTP is not allowed by platform(代码片段

如何从一个片段导航到另一个片段?

这两个代码片段有啥区别?

超级有用的9个PHP代码片段

postman 自动生成 curl 代码片段

postman 自动生成 curl 代码片段