从零开始学HTTP (一)网络基础
2017-08-14 14:05
351 查看
网络基础
web发展史
下面列出了web发展中几个重要的历史结点
HTTP/0.9问世(HTTP/0.9含有HTTP1.0之前版本的意思,这时HTTP并未作为标准被公布)
CERN(欧洲核子研究组织)成功研发出世界上第一台web服务器和浏览器
HTML1.0草案因为太多地方模糊不清被废弃
网景公司发布Netscape Navigator 1.0
微软公司发布 IE1.0和IE2.0
Apache web服务器诞生
HTML 2.0诞生
HTTP正式作为标准被公布 版本被命名为HTTP 1.0
HTTP/1.1是目前的主流HTTP协议版本。
概述
现已提出三项WWW构建技术:HTML、HTTP和URL
HTTP这个协议已经超出了WEB这个框架的局限,被运用到各个场景之中。
制定HTTP协议技术标准的文档被称为RFC(Request for Comments 征求修正意见书)
网络基础TCP/IP
不同硬件,操作系统之间的通信,都需要一种规则,我们称这种规则为协议。像这样把互联网相关连的协议集合起来总称为TCP/IP协议族。
TCP/IP协议族从上到下分为4层:应用层,传输层,网络层,链路层。这样做的好处在于,将每层之间的接口设计好之后,每个层次的内部设计就可以自由改动了。下面是对各层作用的简要介绍:
应用层决定了向用户提供应用服务时通信的活动。比如:HTTP\FTP\DNS
传输层提供网络连接中的两台计算机之间的数据传输。包括:TCP/UDP(user data protocal)。
网络层用来处理网络上流动的数据包。数据包是网络传输的最小数据单位。该层规定了通过怎样的路径到达对方计算机并发数据包传送给对方。与对方计算机之间通过多台计算机或网络设备,网络层的作用就是众多的选项被选择一条传输路线。
链路层用来处理连接网络的硬件部分。
进行通信时,发送端从应用层往下走,接收端从链路层往上走。
客户端发出一个HTTP请求,传输层(TCP)把从应用层处收到的数据进行分割,并在各个报文上打上标记序号以端口号后转发给网络层。在网络层(IP)增加作为通信目的地的MAC地址后转发给链路层。这样一来,发往网络通通信的请求就准备齐全了。接收端的服务器在链路层接收到数据,按顺序向上发送,一直到应用层。发送端在层与层之间传输数据时,每经过一层,必定会打上一个该层所属的首部信息。(最终为:HTTP报文+TCP首部=>TCP报文段+IP首部=>IP数据包+以太网首部=>网络架构)凡直接手段在曾与层之间传输数据的时候,每经过一层时,会把对应的首部去掉。这种把数据信息包装起来的作法成为封装。
与HTTP相关的IP\TCP\DNS
IP协议的作用是把各种数据包传送给对方。而要保证确实传送到对方那里,则需要满足各类条件,其中最重要的条件是IP地址(指明了节点被分配到的地址)和MAC地址(网卡所属的固定地址。IP地址可以和MAC地址进行配对)。
IP间的通信依赖于MAC地址,除非是在一个没有中转代理设备的局域网内。在网络上,通常是经过多台代理设备中转才能连接到对方。而在进行中转时,会利用下一站中转设备的MAC地址来搜索下一个中转目标。
TCP协议提供可靠的字节流服务。为了方便传输,TCP协议将大块数据分割成以报文段为单位的数据包进行管理,并通过三次握手是否送达到对方。
三次握手:
为了准确无误的将数据送达到目标处,TCP协议采用了三次握手的策略。发送端首先发送一个带有SYN TCP标志的数据包给服务器端,接收端收到后,回传一个带有ACK/SYN标志的数据包以示确认收到。最后发送端再回传一个带有ACK标志的数据包,代表握手结束。
若在握手过程中某个过程莫名的被中断,TCP协议会再次以相同顺序发送相同的数据包。
DNS域名系统
DNS提供域名到IP地址之间的解析服务,我们可以使用DNS服务通过域名查找IP地址,也可以通过IP地址反向查找域名。
当我们在浏览器的搜索栏输入一个URL,按下回车之后,首先会通过DNS服务将域名解析成IP地址,浏览器根据HTTP协议生成针对目标服务器的HTTP请求报文。之后通过三次握手建立TCP连接,TCP协议会将HTTP请求报文分割成报文段并为其编号,然后把每个报文段可靠的传送给对方。IP协议负责搜索对方的地址,一边中转一边传送。在服务器端,通过TCP协议接受并重组到达的报文,对Web服务器请求的内容进行处理,请求的内容也通过TCP/IP协议回传给客户端。
URL和URI
URL是统一资源定位符,而URI是统一资源命名符。URI用字符串表示某一互联网资源,而URL则表示资源的地点,可见URL是URI的子集。比如http://www.baidu.com属于URL也属于URI,但tel:+123-456-789-1011只属于URI。
URL(绝对URI)格式:
https://user:pass@www.baidu.com:80/tieba/index.html?id=1234#topic
协议名 + 登录信息 + 服务器地址 + :端口号 + 带层次的文件路径 + 查询字符串 + 片段标识符
至少要包含协议名和服务器地址
web发展史
下面列出了web发展中几个重要的历史结点
1990年
HTTP/0.9问世(HTTP/0.9含有HTTP1.0之前版本的意思,这时HTTP并未作为标准被公布)CERN(欧洲核子研究组织)成功研发出世界上第一台web服务器和浏览器
HTML1.0草案因为太多地方模糊不清被废弃
1994年
网景公司发布Netscape Navigator 1.0
1995年
微软公司发布 IE1.0和IE2.0Apache web服务器诞生
HTML 2.0诞生
1996年
HTTP正式作为标准被公布 版本被命名为HTTP 1.0
1997年
HTTP/1.1是目前的主流HTTP协议版本。概述
现已提出三项WWW构建技术:HTML、HTTP和URL
HTTP这个协议已经超出了WEB这个框架的局限,被运用到各个场景之中。
制定HTTP协议技术标准的文档被称为RFC(Request for Comments 征求修正意见书)
网络基础TCP/IP
不同硬件,操作系统之间的通信,都需要一种规则,我们称这种规则为协议。像这样把互联网相关连的协议集合起来总称为TCP/IP协议族。
分层管理
TCP/IP协议族从上到下分为4层:应用层,传输层,网络层,链路层。这样做的好处在于,将每层之间的接口设计好之后,每个层次的内部设计就可以自由改动了。下面是对各层作用的简要介绍:
① 应用层
应用层决定了向用户提供应用服务时通信的活动。比如:HTTP\FTP\DNS
② 传输层
传输层提供网络连接中的两台计算机之间的数据传输。包括:TCP/UDP(user data protocal)。
③ 网络层
网络层用来处理网络上流动的数据包。数据包是网络传输的最小数据单位。该层规定了通过怎样的路径到达对方计算机并发数据包传送给对方。与对方计算机之间通过多台计算机或网络设备,网络层的作用就是众多的选项被选择一条传输路线。
④ 链路层
链路层用来处理连接网络的硬件部分。
通信传输流
进行通信时,发送端从应用层往下走,接收端从链路层往上走。客户端发出一个HTTP请求,传输层(TCP)把从应用层处收到的数据进行分割,并在各个报文上打上标记序号以端口号后转发给网络层。在网络层(IP)增加作为通信目的地的MAC地址后转发给链路层。这样一来,发往网络通通信的请求就准备齐全了。接收端的服务器在链路层接收到数据,按顺序向上发送,一直到应用层。发送端在层与层之间传输数据时,每经过一层,必定会打上一个该层所属的首部信息。(最终为:HTTP报文+TCP首部=>TCP报文段+IP首部=>IP数据包+以太网首部=>网络架构)凡直接手段在曾与层之间传输数据的时候,每经过一层时,会把对应的首部去掉。这种把数据信息包装起来的作法成为封装。
与HTTP相关的IP\TCP\DNS
IP协议
IP协议的作用是把各种数据包传送给对方。而要保证确实传送到对方那里,则需要满足各类条件,其中最重要的条件是IP地址(指明了节点被分配到的地址)和MAC地址(网卡所属的固定地址。IP地址可以和MAC地址进行配对)。IP间的通信依赖于MAC地址,除非是在一个没有中转代理设备的局域网内。在网络上,通常是经过多台代理设备中转才能连接到对方。而在进行中转时,会利用下一站中转设备的MAC地址来搜索下一个中转目标。
TCP协议
TCP协议提供可靠的字节流服务。为了方便传输,TCP协议将大块数据分割成以报文段为单位的数据包进行管理,并通过三次握手是否送达到对方。三次握手:
为了准确无误的将数据送达到目标处,TCP协议采用了三次握手的策略。发送端首先发送一个带有SYN TCP标志的数据包给服务器端,接收端收到后,回传一个带有ACK/SYN标志的数据包以示确认收到。最后发送端再回传一个带有ACK标志的数据包,代表握手结束。
若在握手过程中某个过程莫名的被中断,TCP协议会再次以相同顺序发送相同的数据包。
DNS域名系统
DNS提供域名到IP地址之间的解析服务,我们可以使用DNS服务通过域名查找IP地址,也可以通过IP地址反向查找域名。
从在浏览器输入一个网址开始
当我们在浏览器的搜索栏输入一个URL,按下回车之后,首先会通过DNS服务将域名解析成IP地址,浏览器根据HTTP协议生成针对目标服务器的HTTP请求报文。之后通过三次握手建立TCP连接,TCP协议会将HTTP请求报文分割成报文段并为其编号,然后把每个报文段可靠的传送给对方。IP协议负责搜索对方的地址,一边中转一边传送。在服务器端,通过TCP协议接受并重组到达的报文,对Web服务器请求的内容进行处理,请求的内容也通过TCP/IP协议回传给客户端。URL和URI
URL是统一资源定位符,而URI是统一资源命名符。URI用字符串表示某一互联网资源,而URL则表示资源的地点,可见URL是URI的子集。比如http://www.baidu.com属于URL也属于URI,但tel:+123-456-789-1011只属于URI。
URL(绝对URI)格式:
https://user:pass@www.baidu.com:80/tieba/index.html?id=1234#topic
协议名 + 登录信息 + 服务器地址 + :端口号 + 带层次的文件路径 + 查询字符串 + 片段标识符
至少要包含协议名和服务器地址
相关文章推荐
- Java基础知识强化之网络编程笔记16:Android网络通信之 使用Http的Get方式读取网络数据(基于HTTP通信技术)
- crawler_基础之_httpclient 访问网络资源
- 网络编辑基础:对HTTP协议的头信息详解
- Android 基础之网络技术-HttpURLConnection
- 网络基础 — https和http之间的区别与联系
- 详解HTTP--网络基础(一)
- 网络基础协议之http协议
- Java基础知识强化之网络编程笔记17:Android网络通信之 使用Http的Post方式读取网络数据(基于HTTP通信技术)
- java 从零开始,学习笔记之基础入门<网络编程_带QQ模拟功能>(二十)
- 网络基础(2)--通信过程之一HTTP协议
- 《图解HTTP》读书笔记(1)第1章了解Web及网络基础(关键词:HTTP/)
- 详解HTTP--网络基础(一)
- 网络基础知识HTTP(1) --转载
- 在C#中使用异步Socket编程实现TCP网络服务的C/S的通讯构架(一)----基础类库部分(来源:http://blog.csdn.net/yangjundeng/archive/2005/03/17/321920.aspx)
- Android网络基础之HttpClient与HttpURLConnection
- Java基础知识强化之网络编程笔记18:Android网络通信之 使用HttpClient的Post / Get 方式读取网络数据(基于HTTP通信技术)
- Android中进行基于HTTP协议的网络访问基础
- 详解HTTP--网络基础(一)
- 网络基础与协议入门——(1)HTTP协议重点
- java网络编程基础夯实08-基于HTTP编程(单线程)