这个系列文章是阅读《图解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的子集

HTTP笔记01-http相关的基础知识的更多相关文章

  1. 《Programming Hive》读书笔记(两)Hive基础知识

    <Programming Hive>读书笔记(两)Hive基础知识 :第一遍读是浏览.建立知识索引,由于有些知识不一定能用到,知道就好.感兴趣的部分能够多研究. 以后用的时候再具体看.并结 ...

  2. php面试笔记(3)-php基础知识-运算符

    本文是根据慕课网Jason老师的课程进行的PHP面试知识点总结和升华,如有侵权请联系我进行删除,email:guoyugygy@163.com 在面试中,考官往往喜欢基础扎实的面试者,而运算符相关的考 ...

  3. tensorflow笔记(一)之基础知识

    tensorflow笔记(一)之基础知识 版权声明:本文为博主原创文章,转载请指明转载地址 http://www.cnblogs.com/fydeblog/p/7399701.html 前言 这篇no ...

  4. php面试笔记(5)-php基础知识-自定义函数及内部函数考点

    本文是根据慕课网Jason老师的课程进行的PHP面试知识点总结和升华,如有侵权请联系我进行删除,email:guoyugygy@163.com 在面试中,考官往往喜欢基础扎实的面试者,而函数相关的考点 ...

  5. Linux运维笔记(一)网络基础知识

    网络基础知识 一.基本概念 1.ARPANET & TCP/IP:以“软件”技术将网络硬件整合,使得不同的计算机或者数据可以通过这个软件达成数据沟通(TCP/IP技术也被称为Internet) ...

  6. php面试笔记(2)-php基础知识-常量和数据类型

    本文是根据慕课网Jason老师的课程进行的PHP面试知识点总结和升华,如有侵权请联系我进行删除,email:guoyugygy@163.com 面试是每一个PHP初学者到PHP程序员必不可少的一步,冷 ...

  7. MOGRE学习笔记(2) - MOGRE基础知识总结

    前一篇配置了MOGRE的运行环境,这里记录一些MOGRE基础知识,仅仅是最基础的一些东西.由于本人接触ogre的时间比较短,对于很多知识都是一知半解,所以理解起来不免会有一些错误,本人也希望自己在对o ...

  8. C++入门笔记(一)零碎基础知识

    零碎基础知识 一.创建和运行程序 1.使用文本编辑器编写程序,保存为文件,该文件就叫源代码. 2.编译源代码:运行一个程序,将源代码翻译为主机使用的内部语言----机器语言.包含了 编译后程序的文件就 ...

  9. python学习笔记六 面向对象相关下(基础篇)

    面向对象基本知识: 面向对象是一种编程方式,此编程方式的实现是基于对 类 和 对象 的使用 类 是一个模板,模板中包装了多个“函数”供使用(可以将多函数中公用的变量封装到对象中) 对象,根据模板创建的 ...

随机推荐

  1. HTML 基础知识汇总(一)

    头部: <head> <!-- 国际通用编码 --> <meta charset="UTF-8"> <!-- 超链接优化写法,让所有的超链 ...

  2. Redis之Transactions(事物)

    你问我Redis支不支持事物?告诉你,Redis对事物的支持是部分支持(对比关系型数据库,没有强一致性) 定义:一个队列.一次性.顺序的.排他性的执行一系列命令 常用命令: DISCARD 取消事物, ...

  3. canvas意料之外获得降龙十八掌的效果

    瞎整本来是要点击编辑多张图片的,没想到弄成这样.这不是电视剧里的降龙十八掌吗 特此记录留着以后用,看来canvas做游戏特效都不错啊. <!DOCTYPE html><html la ...

  4. linux unknown host 问题【转】

    如果某台Linux(CentOS)服务器ping域名, 如下提示: # ping www.sina.comping: unknown host www.sina.com 确认网络没问题的情况下, 可以 ...

  5. Tomcat下载,及环境变量配置

    首先,介绍一下Tomcat: Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache.Sun 和其他一些公 ...

  6. Select 子句后的别名,在where条件中不能使用

    SELECT * FROM student WHERE (条件) 执行顺序,先执行FROM 子句,然后执行WHERE 子句,最后执行SELECT 所以Select 子句后的别名,在where条件中不能 ...

  7. Python使用的技巧

    1. 给你一个字符串 a, 请你输出逆序之后的a. 例如:a=‘xydz’ 则输出:zdyx a=a[::-1] print(a) 扩展:Python切片操作. 2. 给你两个正整数a和b, 输出它们 ...

  8. bash 文件名操作 常用方法

    参考链接: http://www.jb51.net/article/51592.htm 查找文件不获取路径: find $1 -name '*.bin' -exec basename {} \;

  9. mybatis批量更新报错

    批量更新sql <update id="updateAutoAppraiseInfo" parameterType="Object"> <fo ...

  10. markdown自动生成侧边栏TOC /目录

    http://blog.csdn.net/haleypku/article/details/51226704 此文可以只了解一下概念: http://i5ting.github.io/i5ting_z ...