深入学习http不为别的,只为补充底层知识,打好根基,深入了解其他技术,擒贼先擒王,学好九阳神功以后,乾坤大挪移,太极剑就容易了,急于求成,就只能变周芷若。走着。。。。。。

来源于:图解HTTP

1.使用http协议访问web

  web使用一种名为http(HyperText Transfer Protocol,超文本传输协议)的协议作为规范,完成从客户端到服务器端等一系列运作流程。

  协议是指规则的约定。比如:通信网络中,两台计算机或者两个硬件进行通信所必须所共同遵守的约定或规则

  可以说web是建立在http协议上通信的。

  最初设想的基础理念:借助多文档之间相互关联形成的超文本(HyperText),连城可相互参阅的WWW(World Wide Web,万维网)

  现在已提出了WWW投建技术分别是:

  ①.把SGML(Standard Generalized Markup Language,标准通用标记语言)作为页面的文本标记语言的HTML(HyperText MarkupLanguage,超文本标记语言)。

  ②.作为文档传递协议的HTTP。

  ③.指定文档所在地址的URL(Uniform Resource Locator,统一资源定位符)。

2.网络基础 TCP/IP

  通常使用的网络(包括互联网)是在TCP/IP协议簇的基础上运作的。而HTTP是它的一个子集。

  

  ps:把互联网相关联的协议集合起来总成为TCP/IP

  分层

  TCP/IP按层次分了四层,为了分工嘛,和系统架构一样,各自干自己的事情就可以了,便于维护

  

  (如图:)利用TCP/IP协议进行网络通信时,会通过分层顺序与对方进行通信。发送端从应用层往下走,接收端则往应用层往上走。

  下面一一道来,4个层都会干啥活

  应用层:对协议做个选择,它主要决定向用户提供应用服务时通信的活动,没啥说的,就是TCP/IP协议簇中预存了各类通用的应用服务,比如:FTP,DNS,HTTP协议,做个选择

  传输层:对上层应用层,主要是做数据传输,准确的说就是:提供处于网络连接中的两台计算机之间的数据传输。

      这里面有两个不同的协议:TCP(Transmission Control Protocol 传输控制协议)和UDP(User Data Protocol 用户数据报协议)

  网络层(网络互联层):就是选择一个路线把数据传过去。

      处理网络上流动的数据包,数据包是网络传输的最小数据单位,这个层就是规定了用怎样的路线到达对方计算机,并把数据包传送给对方。

  链路层(数据链路层,网络接口层):用来处理连接网络的硬件部分。比如:操作系统、硬件设备驱动、NIC及光纤物理课件部分。硬件上的范畴均在链路层的作用范围之内。

  ps:理解下来就是顺丰发包裹根据运费的高低选择一个交通工具(应用层),是选择空运还是陆运进行运送包裹(传输层),走最近的高速还是飞机航道(网络层)把包裹送到中转站(链路层)。

  TCP/IP通信传输流

  先拿HTTP举例:

  客户端应用层(http协议)发出查看百度页面的http请求==》

  传输层(TCP协议)收到数据(http请求报文)进行分割,在各个报文上打上记号及端口号==》

  网络层(IP协议)增加通往目的地的MAC地址后转发到==》

  链路层==》

  接收端服务器在链路层接收到数据,按序一直往上发==》

  应用层(才算真正接收到由客户端发送过来的HTTP请求)

  

  ps:发送端在层与层之间传输数据时,每经过一层必定会打上一个该层所属的首部信息,反之,接收端在层与层传输数据时,每经过一层时,会把对应的首部信息去掉。这种把数据包装起来的做法叫做封装(encapsulate)。

3.与http关系密切的协议:IP、TCP和DNS

  负责传输的IP协议

  作用:把各种数据包传输给对方。处于网络层。

  前提:满足各种条件,两个重要的:IP地址和MAC(Media Access Control Address)

     IP间的通信依赖MAC地址。在网络上,通信的双方通常是经过多台计算机和网络设备中转才能连接到对方,中转时,会利用下一站中转设备的MAC地址来搜索下一个中转目标,这时,会采用ARP协议(Address Resolution Protocal)

     ps:ARP是一中解析地址的协议,根据通信双方的IP地址就可以反查出对应的MAC地址。就是个中介

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

  

  确保可靠性的TCP协议

  作用:提供可靠的字节流服务(Byte Stream Service),位于网络层。

     啥意思呢,就是TCP协议为了更容易传输大数据才把数据分割,而且TCP协议能够确认数据最终是否送达到对方。

     ps:就是盖房子要拉水泥,一车拉不完,要一车一车,并且能送到工地使用

  为了数据准确达到目的,采用三次握手(three-way handshaking)策略。只要是要有反馈信息的,一般都会有标记,不然怎么知道成不成,握手过程就使用了TCP的标志(flag)-SYN(synchronize,使同步)和ACK(acknowledgement,确认)。

  

  ps:若中间过程中某个阶段莫名中断,TCP协议会再次以相同的数据发送相同的数据包。除了TCP协议还有其他各种手段来保证通信的可靠性。

  负责域名解析的DNS

  作用:提供域名到IP地址之间的解析服务,位于应用层。

  产生原因:计算机可以被赋予IP地址,也可以赋予主机名和域名,用户通常选择后者来访问计算机,为啥呢,因为好记呗,而计算机更擅长处理数字,为了解决这个问题,DNS服务就出来了。怎么感觉像理财师,帮你理财呢,你不懂财经,理财师懂打理金钱。

  DNS通过域名查找IP地址,也可以逆向从IP地址反查域名。

  

4.各种协议与http协议的关系

  看这个总结图:

  

5.URI和URL

  URI用字符串标示一互联网资源,而URL表示资源的地点,课件URL是URI的子集。

  表示指定的URI,要使用涵盖全部必要信息的绝对URI、绝对URL以及相对URL。相对URL,是指从浏览器中基本的URI处指定的URL。

  绝对URI格式如图:

  

 

http(一)web和网络基础的更多相关文章

  1. 了解web及网络基础

    了解web及网络基础 以下内容简单的说明了一下TCP/IP协议族中HTTP协议.DNS服务.IP协议的一些概念和关系.笔者只是对知识点进行了总结,仅供参考: ) 转载请注明出处:了解web及网络基础 ...

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

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

  3. http基础(1.了解web及网络基础,2.简单的http协议)

    第一章:了解web及网络基础 1.http:超文本传输协议 2.tcp/ip协议族:通常使用的网络是在tcp/ip协议族的基础上运作的,而http属于它内部的一个子集. 3.tcp/ip协议族按层次分 ...

  4. 第一章 了解Web及网络基础

    第一章 了解Web及网络基础 Web建立基础.HTTP如何诞生发展 1.使用HTTP协议访问Web 在浏览器地址栏中输入URL之后过程: 1)DNS 解析:浏览器查询 DNS,获取域名对应的 IP 地 ...

  5. 图解 HTTP 笔记(一)——了解 Web 及网络基础

    本章内容:Web 建立在何种技术之上,HTTP 协议如何诞生并发展? 一.Web 基于 HTTP 通信 Web 使用一种名为 HTTP (HyperText Transfer Protocol,超文本 ...

  6. HTTP图解--了解Web及网络基础

    1.网络基础TCP/IP 通常使用的网络是在TCP/IP协议族的基础上运行的,http属于它内部的一个子集. TCP/IP协议族按层次分别分为:应用层.传输层.网络层和数据链路层.分层的好处在于各司其 ...

  7. 图解HTTP(1)之WEB及网络基础

    HTTP协议访问Web 当你在浏览器地址栏中键入有效URL(统一资源定位符)相应的网页页面就会展示出来,那么它是如何展示出来的, 首先这存在两个概念 ------客户端.服务器端 客户端(client ...

  8. 【HTTP】Web及网络基础&HTTP基础

    HTTP协议访问Web 一.大体访问过程 1. 浏览器地址栏输入URL 2. 浏览器从服务端获取文件资源 3. 浏览器显示Web页面 二.HTTP的版本历史 1. HTTP/0.9 没有作为正式的标准 ...

  9. 读《图解HTTP》有感-(了解web及网络基础)

    写在前面 <图解HTTP>是由上野宣先生著,于均良先生译 闲暇之余!写写博文甚是高兴.如有不准确,望各位斧正.共同学习! 正文 HTTP协议是什么?能做什么? HTTP(超文本传输协议)实 ...

随机推荐

  1. Day2-文件操作

    文件操作流程: 1.打开文件,得到文件句柄并赋值给一个变量: 2.通过句柄对文件进行操作: 3.关闭文件 ################################33 1.打开文件方法: a. ...

  2. 如何安装Elasticsearch?

    最近工作中要用到搜索引擎,由于目前用的搜索引擎是LeanCloud 提供的 ,不太好用,不支持范围等搜索,而且每天还收费30元,请求次数也有限制.基于这些原因,我们只好在自己的服务器上部署搜索引擎了. ...

  3. Akka(2):Actor生命周期管理 - 监控和监视

    在开始讨论Akka中对Actor的生命周期管理前,我们先探讨一下所谓的Actor编程模式.对比起我们习惯的行令式(imperative)编程模式,Actor编程模式更接近现实中的应用场景和功能测试模式 ...

  4. 学习css3中的动画

    css animations 主要有两块构成,那么是哪两块呢? keyframes : 定义了什么阶段展示什么样的动画 animation 属性 :把动画挂载到一个具体的dom上,并且定义如何动起来: ...

  5. VR全景智慧城市——商家的需求才是全景市场的核心竞争力

    消费者视角痛点:比如酒店消费行业,很多消费者在预订酒店过程中,都遇到过这样的场景:网上照片里酒店房间看着宽敞明亮,格调不凡,感觉非常喜欢,等真正推开房门插上房卡一看,却大失所望.在酒店行业,网上照片和 ...

  6. VR全景智慧城市,开启“上帝视角”体验‘身临其境’

    VR全景把不同的场景 分为若干个VR视角点 进入一个视角点,用户便能开启"上帝视角" 转动手机,身临其境地360度转动察看,对场景的全貌和细节一目了然.   人生处处有尴尬 比如大 ...

  7. Java之【线程通信】--标志位练习2

    定义一个线程A,输出1 - 10之间的整数,定义一个线程B,逆序输出1 - 10之间的整数,要求线程A和线程B交替输出 方法一:非标志位方法 package Homework; //1 定义一个线程A ...

  8. 向EXECL文件中导入数据的同时插入图片

    因为项目需要在导出数据到EXECL文档的同时还需要导出图片进去,在处理是遇到的一些问题,在此记录一下. 首先代码写好之后放测试服务器上去执行的时候报错了,报检索 COM 类工厂中 CLSID 为 {0 ...

  9. nodejs 开发指南 书中小项目 代码

    最近 在学习node.js 先看了下语法 ,然后就看这个开发指南感觉书还是很有用,但是代码太旧了,网上也没有最新的,所以就自己查着前人的痕迹和自己修改,现在可以跑了. https://github.c ...

  10. 基于java.util.logging实现轻量级日志记录库(增加根据当前类class初始化,修复线程池模型(javaEE)下的堆栈轨迹顺序与当前调用方法不一致问题)

    前言: 本章介绍自己写的基于java.util.logging的轻量级日志记录库(baseLog). 该版本的日志记录库犹如其名,baseLog,是个实现日志记录基本功能的小库,适合小型项目使用,方便 ...