深入学习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. Natas Wargame Level 19 Writeup(猜测令牌,会话劫持)

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAq4AAAEKCAYAAADTmtdjAAAABHNCSVQICAgIfAhkiAAAIABJREFUeF

  2. ACCESS数据库增强器需求及介绍

    目前版本:ver1.0.0.2 现已支持cs文件浏览,高亮显示 针对如下图所示的access数据库,我想导出access数据库的所有或者部分表的表结构,还想对表进行封装,封装如下所示. using S ...

  3. Linux Academy Learn Notes

    Linux Essentials Certification Globbing ls ?.txt --- ? stands for one character while * means one or ...

  4. 你真的了解WebSocket吗?

    WebSocket协议是基于TCP的一种新的协议.WebSocket最初在HTML5规范中被引用为TCP连接,作为基于TCP的套接字API的占位符.它实现了浏览器与服务器全双工(full-duplex ...

  5. 【Netty】Netty之Bootstrapping

    一.前言 前面已经学习了Netty的EventLoop以及线程模型,接着学习Netty的Bootstrapping. 二.Bootstrapping 在学习了Netty中的很多组件后,如何将这些组件有 ...

  6. 无声的吐槽csdn

    上次朋友聚会,说csdn挺好的,我琢磨着,那好我也去注册一个.经过n次的注册(用户名那边老是验证不过,不给中文开头,然后随便填了一个),终于搞定了! 我想,不错啊,做了这么多限制,挺安全的感觉.然后我 ...

  7. Spring Boot 负载均衡之外置session状态保存

    在使用spring boot做负载均衡的时候,多个app之间的session要保持一致,这样负载到不同的app时候,在一个app登录之后,而打到另外一台服务器的时候,session丢失. 常规的解决方 ...

  8. java-web中生成文档(一)

    基于Java的解决方案也是很多的,包括使用Jacob.Apache POI.Java2Word.iText等各种方式,其实在从Office 2003开始,就可以将Office文档转换成XML文件,这样 ...

  9. Java经典编程题50道之一

    有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? public class Example01 {    publi ...

  10. 开源解析库 - JSON

    Json及其实现 JSON作为一种轻量级的数据交换格式,多被用于跨语言通信(比如CPP与PHP之间的数据交互). 至于何为JSON,其详细解释参考 官网. 既然是一种格式,那便必然有相应的编码实现.在 ...