这个系列文章是阅读《图解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. SpringBoot笔记十五:任务

    目录 异步任务 定时任务 异步任务 注解:@Async,@EnableAsync 我新建一个Service,就叫AsyncService package com.example.service; im ...

  2. SQL Server日志过大,清理日志

    直接执行下面的代码 USE [master] GO ALTER DATABASE 数据库 SET RECOVERY SIMPLE WITH NO_WAIT GO ALTER DATABASE 数据库 ...

  3. mavan安装本地jar

    mvn install:install-file -Dfile=E:\IDEAworkspace\importAnalysisDemo\lib\IKAnalyzer2012_u6.jar -Dgrou ...

  4. HDU 1088(文本处理 **)

    题意是对一段文本进行处理,如果读到 <br>,则换行:如果读到 <hr>,若当前行无字符,则输出 80 个 ’-‘ 并换行,否则在下一行输出 80 个 ’-‘ 再换行:如果一行 ...

  5. Python复习笔记(八)迭代器和生成器和协程

    1. 迭代器 1.1 可迭代对象 判断xxx_obj是否可以迭代 在第1步成立的前提下,调用 iter 函数得到 xxx_obj 对象的 __iter__ 方法的返回值 __iter__ 方法的返回值 ...

  6. solr插件导入数据库中的数据

    solr插件导入数据库中的数据 1:自定义与数据库对应的域: 1.1. 设置业务系统Field 如果不使用Solr提供的Field可以针对具体的业务需要自定义一套Field. 例如:如下是商品信息Fi ...

  7. mysql修改表结构语句

    mysql alter 用法,修改表,字段等信息   一: 修改表信息 1.修改表名 alter table test_a rename to sys_app; 2.修改表注释 alter table ...

  8. STC等单片机一开机就停电模式烧写程序办法

    为了测试一个低功耗程序,程序一开机就进入停机模式,结果刷不回来了,经过两个小时的试验,必须4个线同时插拔vcc,rxd,txd,gnd.如果只断开vcc是不行的.

  9. applicationContext.xml配置Spring样板

    <?xml version="1.0" encoding="UTF-8" ?><beans xmlns:xsi="http://ww ...

  10. Docker 创建容器 查看容器状态 - 三

    Docker 创建容器 1.拉取镜像 默认是 docker.io 仓最新镜像 docker pull tomcat 2.运行一个服务容器 docker run -d -p 0.0.0.0:18080: ...