这个系列文章是阅读《图解HTTP》后写下的笔记

当我们在浏览器输入url,点击回车后,浏览器显示我们需要的web页面,那么,这个界面是如何产生的?

根据浏览器地址中输入的url,浏览器从相应的web服务器端获取文件资源等信息,从而显示web页面。

像这种发送请求获取服务器资源的浏览器都可以称为客户端(client)

web使用HTTP(HyperText Transfer Protocol),超文本传输协议作为管饭,完成从客户端到服务器端等一系列运作流程。可以说web是基于http协议的基础上建立的。

TCP/IP协议族

计算机与网络设备要相互通信,双方就必须基于相同的方法。比如,如何探测到通信目标,有哪一边先发起通信,使用哪种语言进行通信,怎样结束通信等规则都需要事先预定。这些规则称为协议。

协议中存在各式各样的内容。从电缆的规格到IP地址的选定方法、寻找异地用户的方法、双发建立通信的顺序,以及web页面显示需要处理的步骤,等等。

像这样把与互联网相关联的协议集合起来总称为TCP/IP

TCP/IP分层管理

TCP/IP重要的一点就是分层。TCP/IP协议族按层次分为4层:应用层、传输层、网络层、数据链路层

把TCP/IP层次化是有好处的。比如,如果在互联网只需要一个协议统筹,某个地方要改变设计时,就必须整体换掉。而分层之后只需把变动的层替换掉即可。

应用层

体系的最顶层,决定了向用户提供应用服务时通信交互的规则,TCP/IP协议族内预存了各类通用的应用服务。比如:

FTP:文件传输协议

DNS:域名系统

http协议也处于该层

传输层

传输层对上层应用层,提供处于网络连接中两台计算机之间的数据传输。其中包括两个性质不同的协议:

TCP:传输控制协议,传输的单位为报文段,提供面向连接的,可靠的数据传输服务

UDP:用户数据报协议,传输单位为用户数据报,资源消耗小,处理速度快,但是不能保证安全可靠。

网络层:又名网络互联层

网络层用来处理在网络上流动的数据包。数据包是网络传输的最小数据单位。该层规定了通过怎样的路径(传输路线)到达对方计算机,并把数据传送给对方
与对方计算机之间通过多台计算机或网络设备进行传输时候,网络层所起的作用就是在众多的选项内容选择一条传输路线

链路层:又名数据链路层,网络接口层

用来处理连接网络的硬件部分。包括操作系统、硬件设备、网卡、光纤等。

与http密切关联的协议:

IP协议:位于网络层。作用是把各种数据包传送给对方。而要保证确实传到对方那里,则需要满足各类条件。其中两个重要的条件是IP地址和MAC地址。

IP地址指明了节点被分配到的地址,MAC地址是指网卡所属的固定地址。IP地址可以和MAC地址进行配对。IP地址可变换,但MAC地址基本不会更改。

IP间的通信依赖MAC地址。在网络上,通信通过是经过多台计算机和网络设置的中转才连接到对方。而在进行中转时,会利用下一个中转设备的MAC地址来搜索下一个中转目标。需要使用ARP协议,ARP是一种解析地址的协议。根据ip地址反查出对应的MAC地址

TCP协议:位于传输层,为了更容易传输大数据,把数据分割以报文段形式传输。TCP协议可确保数据最后是否送到

为了准确无误的讲数据传送到达目的地,TCP协议采用了三次握手策略。

在三次握手,收发的数据,也会有相应的验证是否正确。除了三次握手,TCP协议还有其他各种手段来保证通信的可靠性

DNF服务:是与http协议一样,处于应用层的协议。提供域名和IP地址之间的服务。比如www.baidu.com这种域名转化成ip地址。或者逆向通过ip地址查询域名。

URI和URL

URI:统一资源标识符,某个协议方案表示资源的定位符。协议方案是指访问资源时所用的协议类型名称,比如使用HTTP协议时,协议方案就是http。

URL:统一资源定位符,表示资源的地点(互联网上的具体位置)

URL是URI的子集

最新文章

  1. linux ps命令,查看进程cpu和内存占用率排序(转)
  2. Dreamweaver架设网站终极教程
  3. leetcode-【中等题】5. Longest Palindromic Substring
  4. codeforces 490B.Queue 解题报告
  5. ios retain 与 copy 的区别
  6. Linux下环境变量设置
  7. QWidget 键盘事件 焦点(QApplication源码)
  8. linux常用命令:1文件处理命令
  9. c#之反射总结
  10. extern "C"——用“C”来规约在C++中用C的方式进行编译和链接
  11. js数组的操作 【转】
  12. SeleniumServer3.0
  13. makefile讲解
  14. 牛客网PAT乙级(Basic Level)真题-组个最小数 (20)
  15. offsetWidth/offsetHeight,clientWidth/clientHeight与scrollWidth/scrollHeight的区别
  16. Java面试集合(四)
  17. 4 html文件引用问题
  18. Visual Studio资源汇总
  19. [leetcode]13. Roman to Integer罗马数字转整数
  20. Harbor 搜索镜像及查看 tag

热门文章

  1. java io系列19之 CharArrayWriter(字符数组输出流)
  2. JAVA核心技术I---JAVA基础知识(工具类Arrays和Collections类)
  3. C语言复习---输出魔方阵
  4. python数据结构总结
  5. Web API中的返回值类型
  6. Web API中的消息处理程序(Message Handler)
  7. [leetcode-118]Pascal's triangle 杨辉三角
  8. Golang入门教程(十三)延迟函数defer详解
  9. springBoot整合多数据源
  10. ArcGis Go to XY功能代码C#