美文网首页
HTTP从入门到懵逼学习笔记(一)

HTTP从入门到懵逼学习笔记(一)

作者: 狗没拿伞 | 来源:发表于2018-01-15 00:00 被阅读0次

 虽然说web也学了很久了,也尝试写过一些小项目,但是越往后面学我就感觉自己的基础真的很差,很多东西都只停留在只会用的阶段,对于其中的道理是完全懵逼的,趁着这个寒假,好好的补一补以前的基础课程。我就先从复习HTTP开始,哦,不,应该说是从零开始。

TCP/IP协议族

 首先,我们都知道web是建立在HTTP上进行通信的,至于HTTP的历史来源就不聊了,百度一下很容易就知道了的。在学习HTTP之前必须要先了解一下TCP/IP协议族,毕竟HTTP就是它的一个子集。TCP/IP协议族有个分层的概念,如下:应用层、传输层、网络层和数据链路层。如果互联网只由一个协议统筹时,某个地方需要改变时就得换整体,分层的话就只需替换变动的层就行了,而且分层将设计变得更简单。

一、链路层

 用来处理网络的硬件部分。

二、网络层

 该层规定了通过怎样的路径到达对方的计算机,并将数据包传送给对方。

三、传输层

 提供了处于网络连接的两台计算机之间的数据传输。在传输层两个性质不同的协议,TCP和UDP。

四、应用层

 应用层决定了向用户提供应用服务时通信的活动。这句话有点难以理解,我在网上看到一篇博客是这样说的,我觉得说得十分好。

通过上面的几层协议,我们已经可以在任意两个人(进程)之间进行通信。然而每个人实际上从事的是不同的行业。有的人是律师,有的人外交官。比如说律师之间的通信,会用严格的律师术语,以免产生纠纷。再比如外交官之间的通信,必须符合一定的外交格式,以免发生外交误会。再比如间谍通过暗号来传递加密信息。应用层协议是对信件内容进一步的用语规范。应用层的协议包括用于Web浏览的HTTP协议,用于传输文件的FTP协议,用于Email的IMAP等等。

TCP/IP通信传输流

image.png
 发送端在层与层之间传输数据时,每经过一层时必会被打上一个该层所属的首部信息。反之,接受层在层与层之间传输数据时,每经过一层时会吧对应的首部消去。将数据信息包装起来的做法称为封装

IP、TCP、DNS

一、IP

 IP协议位于网络层,作用是将各种数据包传送给对方。在非局域网的网络中,通常是经过多台计算机和网络设备中转才能连接对方的。会利用下一站中转设备的MAC地址来搜索下一个中转目标,这时就需要ARP协议来将IP反查出对应的MAC地址。如下图


《图解HTTP》.png
二、TCP

 TCP位于传输层,提供可靠的字节流传输服务。TCP协议为了更容易传输大数据将数据分割,而且TCP能确认数据最终是否送达到对方。为了准确将数据送达目标处,建立TCP需要三次握手才能建立,而断开需要四次挥手。具体的话这篇博客我觉得讲得挺好的https://www.cnblogs.com/myvin/p/4862167.html
如果还不好理解,我在知乎上看到一个非常有趣的形容。

怎样生动描述 TCP 的「三次握手」? - 吴毅凡的回答 - 知乎
https://www.zhihu.com/question/20879359/answer/88768186

三、DNS

 DNS是一个位于应用层的协议,提供域名到IP之间的解析服务。这个很好理解,就是IP地址一串数字不好记忆,可以通过访问对应的域名,然后通过DNS来将域名转为IP来访问相应的服务器。


附一个各种协议与HTTP协议的关系图


《图解HTTP》.png

URI和URL

以前的我,一直对着两个东西傻傻分不清楚,URL倒是经常用,URI到底是什么呢?URI(Uniform Resource Identifier)-统一资源标识符;URL(Uniform Resource Locator)-统一资源定位符。URI用字符串标识某一互联网资源,而URL表示资源的地点,URL是URI的子集。如下全是URI:

ftp://ftp.is.co.za/rfc/rfc1808.txt (also a URL because of the protocol)
http://www.ietf.org/rfc/rfc2396.txt (also a URL because of the protocol)
ldap://[2001:db8::7]/c=GB?objectClass?one (also a URL because of the protocol)
mailto:John.Doe@example.com (also a URL because of the protocol) news:comp.infosystems.www.servers.unix (also a URL because of the protocol)
tel:+1-816-555-1212
telnet://192.0.2.16:80/ (also a URL because of the protocol)
urn:oasis:names:specification:docbook:dtd:xml:4.1.2

由例子可以看出,提供的具体网络地址的可以称为URL。
参考博客URI与URL的区别:https://www.cnblogs.com/hust-ghtao/p/4724885.html


今天学习内容如上。\( ̄︶ ̄)/
参考资料:《图解HTTP》+无所不知的度娘+各位大佬的博客

相关文章

  • HTTP从入门到懵逼学习笔记(一)

     虽然说web也学了很久了,也尝试写过一些小项目,但是越往后面学我就感觉自己的基础真的很差,很多东西都只停留在只会...

  • HTTP从入门到懵逼学习笔记(三)

    HTTP报文结构  HTTP通信中请求和响应的运作。用于HTTP协议交互的信息被称为HTTP报文,请求段的HTTP...

  • HTTP从入门到懵逼学习笔记(二)

     今天主要学的是HTTP协议结构。 感觉纯文字有些时候确实不好说明,所以尽量能放图就放图。HTTP协议规定,请求从...

  • HTTP从入门到懵逼学习笔记(七)

     在前些章节的学习中,我们了解了HTTP的一些基础知识,但是HTTP并不是我们想象中那么完美,它也有着不足的地方。...

  • HTTP从入门到懵逼学习笔记(五)

     嗯,这章还是比较容易理解的,主要就是讲了一下与HTTP协作的Web服务器。我们先来看一张思维导图。  在以前的文...

  • HTTP从入门到懵逼学习笔记(六)

     在以前的文章中,我们就已经知道了HTTP报文的结构。HTTP请求报文:在请求中,HTTP报文由方法、URI、HT...

  • HTTP从入门到懵逼学习笔记(四)

    HTTP状态码  状态码是什么想必都知道,状态码的作用是描述返回的请求结果,我们平时访问网站时有些时候出现的404...

  • 小白学习编程为何常常从入门到懵逼

    学习编程为什么会从入门懵逼? 必须需要学习底层的技术学编程不像学习挖掘机。学习挖掘机可以不用学习挖掘机是怎么造出来...

  • 我就是我

    “懵逼树上懵逼果 懵逼树下懵逼的我 我望着懵逼树上的懵逼果 一个懵逼果砸到懵逼的我 我吃完懵逼果 一脸懵逼” 性情...

  • 从入门到懵逼--view的事件体系

    在安卓中View的作用堪比四大组件,Activity负责可视化和交互性功能部分,而具体的显示和操作都是基于view...

网友评论

      本文标题:HTTP从入门到懵逼学习笔记(一)

      本文链接:https://www.haomeiwen.com/subject/aieloxtx.html