深入学习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. ArrayList的sublist注意

    void testArrayList(){ String []appname ={"联系人","相机","电话","收音机&quo ...

  2. motor和servo

    程序简单易读,不再做注释 motor.py from gpiozero import Motor from gpiozero import LED led = LED(2) motor = Motor ...

  3. Maven学习(四)

    eclipse创建Maven web项目 1.创建新项目 选择File -> New ->Project 选择New Project窗口中选择 Maven -> Maven Proj ...

  4. 探讨SQL Server并发处理队列数据不阻塞解决方案

    前言 之前对于并发这一块确实接触的比较少,自从遇到现在的老大,每写完一块老大都会过目一下然后给出意见,期间确实收获不少,接下来有几篇会来讲解SQL Server中关于并发这一块的内容,有的是总结,有的 ...

  5. 外部无法捕捉Realm的doGetAuthenticationInfo方法抛出的异常

    shiro权限框架,用户登录方法的subject.login(token)会进入自定义的UserNamePasswordRealm类的doGetAuthenticationInfo身份验证方法 通常情 ...

  6. The dplyr package has been updated with new data manipulation commands for filters, joins and set operations.(转)

    dplyr 0.4.0 January 9, 2015 in Uncategorized I’m very pleased to announce that dplyr 0.4.0 is now av ...

  7. kali虚拟机安装提示安装系统步骤失败

    首先虚拟机不论是VM还是VirtualBox都可以直接安装kali镜像文件的,不过如果你采用虚拟机默认硬盘8G设置的话,到的系统安装步骤会出错无法继续,具体原因不明. 解决办法却很简单,将虚拟机的硬盘 ...

  8. Vue.js高仿饿了么WebApp

    介绍 学习Vue.js也有一阵子了,为了加深对Vue的理解及运用,做了一个小项目.这是一个高仿饿了么外卖WebApp,现已完成商品预览.商品详情.商家预览.添加购物.查看评论等功能. 部分截图 项目预 ...

  9. SQL SERVER大话存储结构(6)_数据库数据文件

            数据库文件有两大类:数据文件跟日志文件,每一个数据库至少各有一个数据文件或者日志文件,数据文件用来存储数据,日志文件用来存储数据库的事务修改情况,可用于恢复数据库使用.     这里分 ...

  10. Eclipse导入项目常见问题----乱码问题03

    有时打开导入的项目文件时,会出现如下图情况: 解决方法 如下图步骤所示: 此时,我们可以看到文件正常了 jdk版本问题(有个红色感叹号)01:http://blog.csdn.net/baidu_37 ...