一、HTTP三次握手和四次分手
不少人可能都会听说过或被问到HTTP三次握手,准确来说,说HTTP三次握手并不准确,因为并没有HTTP三次握手,而是TCP三次握手四次分手,因为HTTP服务是基于TCP/IP协议实现的,所以但凡涉及网络开发或者HTTP开发都会遇到该知识点。这里将错就错,就谈论HTTP三次握手和四次分手,但是要记得基本涉及该内容的都是指的TCP而不是HTTP。
为什么会常常被问到HTTP或TCP三次握手四次分手呢?因为基本所有的项目开发都会涉及到网络,这就要求你掌握一定的网络技术了,否则若需要实现更高级的需求,单纯地使用高层的API并不会实际帮到你,HTTP协议也并不是到处都可用的,例如热门的移动流媒体传输(例如直播),这里面主要应用到的是UDP协议而不是TCP,有点跑题了。
说回到HTTP协议,它主要应用在浏览器网站开发和一些可靠性数据传输,特点是允许延时,保证数据的可靠性,在移动开发中也常用。关于HTTP或TCP三次握手和四次分手的过程,你可能看过一些不太详尽的教程,其实单靠文字描述也很难掌握其真正内容,在这里:TCP三次握手四次分手的实质原理分析实例,你可以找到更加实际的学习信息和操作,例如找到三次握手过程中的数据包报文信息,通过查看报文信息,自然就不用背书也就对网络有更深刻的理解了。
二、 URI、URL和URN的通俗解析和区别
URI (Uniform Resource Identifier) 统一资源标识符
URL(Uniform Resource Locator)统一资源定位符
URN(Uniform Resource Name)统一资源名称/永久统一资源定位符
首先URI是一种标识符,这个标识符专门用于标记资源的,资源就是文件、视频、音频等,什么是标识符?各种名称及其组合,例如A、B都是标识符,/A/B/C也是标识符,所以标识符千千万万,也就是说URI它就是专门用来标识资源的,但是不限定是哪种表示形式,例如http://www.example.com/3141592和http://www.example.com/314.html都可以表示一个html文本,实际上你可以想到,URI包括了所有定位资源的方式,包括URL和URN,所以URI是一个资源定位的总称。
而URL则是带有固定形式的URI,主要由两部分组成:协议和特定协议部分,形式如:
{protocol}://user:password@host.com:80/path?query=string#hash
协议protocol部分包括我们常见的HTTP协议,FTP协议等。
特定协议分别是://用户名:密码@主机名:端口号/路径?参数属性名=属性值#ID。
URL是我们常用的URI,无论对于前端开发还是后端开发,了解URL的结构都非常重要。
URN也是一个标识符,它的特别之处就在于它是一个永久的标识符,旨在使用唯一的标识符标记一个资源,即使资源被移动也可以被找到,目前还在发展中。