第1章 了解web及网络基础

计算机与网络设备相互通信的规则称为协议,比如:如何探测到通信目标、由哪一边发起通信、使用那种语言进行通信、怎么结束通信等。

TCP/IP 协议族按照层次分为以下四层:应用层、传输层、网络层、数据链路层。

  1. 应用层:
    应用层决定了向用户提供应用服务时的通信活动。
    TCP/IP 协议族中预存了各类通用的应用服务,如:FTP(文件传输协议)、DNS(域名系统)、HTTP协议等。
  2. 传输层:
    传输层对上层应用层提供处于网络连接中的两台计算机之间的数据传输。
    传输层有两个协议:TCP(传输控制协议)和 UDP(用户数据报协议)
  3. 网络层:
    数据包是网络传输的最小数据单位,网络层就是用来处理网络上流动的数据包。
    该层规定了以怎样的路径(传输协议)到达对方的计算机并传输数据包。
  4. 数据链路层:
    用来处理连接网络的硬件部分,如:控制操作系统、硬件的设备驱动、NIC(网络适配器即网卡)及光纤等物理可见部分。

与 HTTP 关系密切的协议:IP、TCP 和 DNS

  1. 负责传输的 IP 协议

IP 网际协议属于网络层。用于将各种数据包传送给对方。而要保证数据正确的传送,则需要满足一定的条件。其中最重要的两个条件就是 IP 地址 和 MAC 地址。

IP 地址指明了节点被分配的地址,MAC 地址是网卡所属的固定位置。IP 地址和 MAC地址可以进行配对。IP 地址可以变化,MAC 地址通常不会改变。

可以使用 ARP 协议凭借 MAC 地址进行通信。

  1. 确保可靠性的 TCP 协议

TCP 位于传输层,提供可靠的字节流服务。
字节流服务是指为了方便传输,将大块数据分割成以报文段为单位的数据包进行管理。可靠的传输服务是指能够把数据准确可靠的传输给对方。
TCP 协议为了更容易传输大数据而把数据分割,且能够确认数据最终是否传送给对方。

为了准确的传送数据,TCP 协议采用了三次握手策略:

握手过程中使用了 TCP 的标志:SYN 和 ACK

  1. 负责域名解析的 DNS 服务

DNS 服务是和 HTTP 协议一样位于应用层的协议,它提供域名到 IP 地址的解析服务。通过域名查找 IP 地址或者通过 IP 地址反查找域名。

计算机既可以被赋予 IP 地址,也可以被赋予主机名和域名。
用户通常使用主机名或域名(字母配合数字的表示形式方便记忆)来访问对方的计算机,而不是直接通过 IP 地址进行访问。
但是计算机更擅长处理 IP 地址(一长串数字)

  1. 各种协议与 HTTP 协议之间的关系

《图解 HTTP 》阅读 —— 第一章的更多相关文章

  1. Unity文档阅读 第一章 入门

    Before you learn about dependency injection and Unity, you need to understand why you should use the ...

  2. 【图解HTTP】第一章 了解web及网络基础

    [图解HTTP]了解Web及网络基础 Web页面是如何呈现的?根据Web浏览器地址栏中指定的URL,Web浏览器从Web服务器端获取文件资源(resource)等信息,从而显示出Web页面. 这种通过 ...

  3. 《图解HTTP》阅读笔记---第一章网络基础

    第一章.网络基础TCP/IP:----------传输控制协议Transmission Control Protocol / 网络协议Internet Protocol是一种用于Internet(因特 ...

  4. 《JavaScript高级程序设计(第3版)》阅读总结记录第一章之JavaScript简介

    前言: 为什么会想到把<JavaScript 高级程序设计(第 3 版)>总结记录呢,之前写过一篇博客,研究的轮播效果,后来又去看了<JavaScript 高级程序设计(第3版)&g ...

  5. Camel In Action 阅读笔记 第一部分概述 + 第一章概述 认识Camel

    第一部分: 最开始的一小步 Apache Camel 是一个开源集成框架,其目的是让系统集成变得更加简便,在本书的第一章中,我们会为您介绍它并向您展示它是如何在大型企业应用中做好集成工作.您也会了解到 ...

  6. 阅读《大道至简第一章》读后感(java伪代码)

    大道至简讲述的是软件工程实践者的思想,书的第一章引用了著名的----愚公移山这一历史故事,向我们讲述了编程的精义.汤问篇中所述的愚公移山这一事件,我们看到了原始需求的产生---“惩山北之塞,出入之迂” ...

  7. 阅读《大道至简第一章》读后感 (java 伪代码)

         通读大道至简第一章愚公移山,可以将其看做一个完整的工程,首先是创建工程的原因,需求:“惩山北之塞,出入之迂”,而后是团队之间的商议:“聚室而谋曰”,然后确定工程的目标:“毕力平险,指通豫南, ...

  8. HTTP权威指南阅读记录 - 第一章

    最近终于开始看<HTTP权威指南>了,第一章主要是简介一些基本的概念.下面列出一些常用,但还不是很了解的简单概念. 一.常见概念: 1.媒体类型 因特网上有数千种不同的数据类型,HTTP仔 ...

  9. 《Interest Rate Risk Modeling》阅读笔记——第一章:利率风险建模概览

    目录 第一章:利率风险建模概览 思维导图 一些想法 第一章:利率风险建模概览 思维导图 一些想法 久期向量模型类似于研究组合收益的高阶矩. 久期向量模型用的是一般多项式表达高阶久期,试试正交多项式? ...

随机推荐

  1. js中使用trim

    function trim(s) { return trimRight(trimLeft(s)); } //去掉左边的空白 function trimLeft(s) { if (s == null) ...

  2. Jenkins构建Python项目失败

     Console Output 提示:'Python' 不是内部或外部命令,也不是可运行的程序 定位原因:python.exe 不在jenkins执行用户的PATH里面 解决:构建的时候Python命 ...

  3. Linux服务器上安装JDK小白教程

    一.环境 VMware12 Pro CentOS-6.7-i386-bin-DVD1 jdk-8u151-linux-i586 二.详细安装步骤 前提:需要卸载自己Linux上的jdk rpm -qa ...

  4. 多线程之CountDownLatch、CyclicBarrier和Semaphore

    Java并发编程:CountDownLatch.CyclicBarrier和Semaphore 在java 1.5中,提供了一些非常有用的辅助类来帮助我们进行并发编程,比如CountDownLatch ...

  5. 个性化 UIAlertController

    系统的 UIAlertController 封装的很漂亮,用block代替之前 UIAlertView 的代理,用起来更方便的,但是其曝露出来的接口也不多如果要个性化一些东西,比如字体大小.颜色就不是 ...

  6. 开源 免费 java CMS - FreeCMS1.9 全文检索

    项目地址:http://code.google.com/p/freecms/ 全文检索 从FreeCMS 1.7開始支持 仅仅有创建过索引的对象才干被lucene类标签查询到. 信息类数据会在信息更新 ...

  7. #leetcode刷题之路46-全排列

    给定一个没有重复数字的序列,返回其所有可能的全排列.示例:输入: [1,2,3]输出:[ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1]] 两 ...

  8. Oracle透明网关访问MySQL数据库

    针对oracle数据库不同实例之间的数据访问,我们可以直接通过dblink访问,如果oracle数据库想访问mysql/sqlserver等数据库的数据,我们可以通过配置oracle透明网关实现异构数 ...

  9. zabbix服务快速搭建指南

    zabbix监控服务快速安装指南 1.更换centos7-base源为阿里源  wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.ali ...

  10. 不安分的android开发者(小程序初尝试,前后台都自己做)

    前言 作为一个稍微有点想法的程序员来说,拥有一个自己开发,自己运营,完全属于自己的应用,应该是很多人的梦想.刚毕业那会,自己的工作是做游戏,于是也和朋友业余时间开发一些小游戏玩玩,可是终究不成气候,而 ...