HTTP——学习笔记(1)
名词解释:
协议:
HTTP:HyperText Transfer Protocol,超文本传输协议,属于应用层的协议
FTP:File Transfer Protocol,文件传输协议,相比于HTTP协议更加复杂,控制文件双向传输,比如:上传,下载都用到了这个协议
IP协议:Internet Protocol,网际协议,位于网络层。作用是把各种数据包传送给对方,要保证传送到对方那里需要满足两个重要条件,IP地址和Mac地址(Media Access Control Address)
ARP:Address Resolution Protocol,一种用以解析地址的协议,根据通信方的IP地址可以反查出对应的MAC地址
TCP:Transmission Control Protocol,传输控制协议,将应用层发向传输层的数据流,TCP将数据流分割成适当长度的报文段
UDP:User Data Protocol,用户数据报协议,不可靠的数据报协议,为网络层以上和应用层以下提供接口,它一旦把应用程序发送给网络层的数据发送出去就不保存数据备份,所以说它不可靠。
URI:Uniform Resource Identifier,统一资源标识符
URL:Uniform Resource Locator,统一资源定位符,就是使用浏览器访问web页面时需要输入的网页地址
URI和URL的区别:URI是个纯粹的句法结构,用于指定标识Web资源的字符串的各个不同部分。URL是URI的一个特例,它包含了定位Web资源的足够信息
RFC:Request for Comments,征求修正意见书,用来制定HTTP协议技术标准的文档,可以看做是互联网的设计文档,如果不按照RFC标准执行则可能导致无法通信
路由器:router,是连接因特网中各局域网、广域网的设备,它会根据信道的情况自动选择和设定路由,以最佳路径,按前后顺序发送信号。 路由器是互联网络的枢纽
路由选择:IP协议发送数据时会经过路由选择,具体解释见下
IP地址:节点被分配到的地址,与域名相对应
Mac地址:网卡所属的固定地址,通常一台PC机对应一个Mac地址,且不再改变
DNS:Domain Name System,域名系统,因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。比如:www.baidu.com 对应IP为 183.232.231.173,在地址栏中输入这两个内容都可以访问到百度页面,域名是www.baidu.com,方便用户记忆
TCP/IP协议族:
不同的硬件、操作系统之间的通信,所有的这一切都需要一种规则,从电缆的规格到IP地址的选定方法、寻找异地用户的方法、双方建立通信的顺序,以及web页面显示需要处理的步骤,等等。这样把与互联网相关联的协议集合起来总称为TCP/IP是在IP协议的通信过程中,使用到的协议族的统称。
TCP/IP的分层管理
应用层:决定向用户提供应用服务时通信的活动,TCP/IP协议族内预存了各类通用的应用服务。比如FTP和DNS服务就是其中两类。
传输层:传输层对上层应用层,提供处于网络连接中的两台计算机之间的数据传输,在传输层中还有两个性质不同的协议,TCP和UDP
网络层(网络互连层):用来处理在网络上流动的数据包。数据包是网络传输的最小数据单位。该层规定了通过怎样的路径(所谓的传输路线)到达对方计算机,并把数据包传送给对方。与对方计算机之间通过多台计算机或网络设备进行传输时,网络层所起的作用就是在众多的选项内选择一条传输路线,IP协议
链路层(数据链路层、网络接口层):用来处理连接网络的硬件部分。包括控制操作系统,硬件的设备驱动,NIC(Network Interface Card,网络适配器,即网卡),及光纤等物理可见部分(还包括连接器等一切传输媒介)。在硬件上的范畴均在链路层的作用范围之内。
发送信息时:
(发送端)应用层 ——> 传输层 ——> 网络层 ——> 链路层(添加通信目的地地址(Mac地址))
|
|
(接收端)应用层 <—— 传输层 <—— 网络层 <—— 链路层
发送端在层与层之间传输数据时,每经过一层时会被打上一个该层所属的首部信息,在接收端的层与层传输数据时,每经过一层时会把对应的首部去掉。(封装)
注:有的书上在应用层和传输层中间还有一个 会话层
IP协议所属的网络层在传送信息时需要经过路由选择,不论哪一台计算机,哪一台网路设备都无法全面掌握互联网中的细节,发送端使用ARP协议解析后发现未解析成功则会先发给某一MAC地址的路由器,再由该路由器解析后中转给下一个路由器,直到最后发往正确的地址
TCP协议所属传输层,提供可靠的字节流服务,即将大块数据分割成报文段为单位的数据包进行管理,之所以说TCP“可靠”,是因为TCP协议中采用的“三次握手”策略
发送端发送一个带有SYN标识的数据包给对方,接收端收到后回传一个带有SYN/ACK标识的数据包告诉发送端自己已经收到了,发送端再发送一个带有ACK标识的数据包,代表“握手”结束
发送端发送数据到接收端的具体过程:
URI格式:
不区分大小写,也可以使用data:或javascript:这类指定数据或脚本程序的方案名
服务器地址可以是DNS可解析的名称,或者IPv4地址名(192.168.1.1),或者IPv6地址名([0:0:0:0:0:0:0:1])
服务器端口号,可选项,省略则使用默认端口号
带层次的文件路径是指在服务器上该文件的路径
查询字符串,为可选项
片段标识符,在该页面的某一位置,可选项
HTTP——学习笔记(1)的更多相关文章
- js学习笔记:webpack基础入门(一)
之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...
- PHP-自定义模板-学习笔记
1. 开始 这几天,看了李炎恢老师的<PHP第二季度视频>中的“章节7:创建TPL自定义模板”,做一个学习笔记,通过绘制架构图.UML类图和思维导图,来对加深理解. 2. 整体架构图 ...
- PHP-会员登录与注册例子解析-学习笔记
1.开始 最近开始学习李炎恢老师的<PHP第二季度视频>中的“章节5:使用OOP注册会员”,做一个学习笔记,通过绘制基本页面流程和UML类图,来对加深理解. 2.基本页面流程 3.通过UM ...
- 2014年暑假c#学习笔记目录
2014年暑假c#学习笔记 一.C#编程基础 1. c#编程基础之枚举 2. c#编程基础之函数可变参数 3. c#编程基础之字符串基础 4. c#编程基础之字符串函数 5.c#编程基础之ref.ou ...
- JAVA GUI编程学习笔记目录
2014年暑假JAVA GUI编程学习笔记目录 1.JAVA之GUI编程概述 2.JAVA之GUI编程布局 3.JAVA之GUI编程Frame窗口 4.JAVA之GUI编程事件监听机制 5.JAVA之 ...
- seaJs学习笔记2 – seaJs组建库的使用
原文地址:seaJs学习笔记2 – seaJs组建库的使用 我觉得学习新东西并不是会使用它就够了的,会使用仅仅代表你看懂了,理解了,二不代表你深入了,彻悟了它的精髓. 所以不断的学习将是源源不断. 最 ...
- CSS学习笔记
CSS学习笔记 2016年12月15日整理 CSS基础 Chapter1 在console输入escape("宋体") ENTER 就会出现unicode编码 显示"%u ...
- HTML学习笔记
HTML学习笔记 2016年12月15日整理 Chapter1 URL(scheme://host.domain:port/path/filename) scheme: 定义因特网服务的类型,常见的为 ...
- DirectX Graphics Infrastructure(DXGI):最佳范例 学习笔记
今天要学习的这篇文章写的算是比较早的了,大概在DX11时代就写好了,当时龙书11版看得很潦草,并没有注意这篇文章,现在看12,觉得是跳不过去的一篇文章,地址如下: https://msdn.micro ...
- ucos实时操作系统学习笔记——任务间通信(消息)
ucos另一种任务间通信的机制是消息(mbox),个人感觉是它是queue中只有一个信息的特殊情况,从代码中可以很清楚的看到,因为之前有关于queue的学习笔记,所以一并讲一下mbox.为什么有了qu ...
随机推荐
- IOS - JSON数据解析 小3种方法
[manager GET:serverURL parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject ...
- HBase入门操作 常用命令和增删改查的简单应用操作
这里启动关闭Hadoop和HBase的顺序一定是: 启动Hadoop—>启动HBase—>关闭HBase—>关闭Hadoop ssh localhost 开启hadoopcd /us ...
- MyEclipse报错Access restriction: The type BASE64Encoder is not accessible due to restriction on required library
错误截图: 解决办法: 1.进入Project --> Properties --> Java Build Path --> Libraries 2.remove 掉 JRE Sys ...
- 使用InstelliJ IDEA创建Spring MVC应用程序
环境版本 Windows 8.1 IDE:InstelliJ IDEA 13 Spring:Spring 4.1.1 & Spring MVC 4.1.1 WebLogic 10. ...
- Git:与eclipse搭配使用
Git:与eclipse搭配使用 1)工程初始化为本地库 工程 ——>右键 ——>Team ——Share Project 在该目录下创建了本地库 这里可以设置用户签名 2)Eclipse ...
- 在join中,on和where的区别
两个表在,join时,首先做一个笛卡尔积,on后面的条件是对这个笛卡尔积做一个过滤形成一张临时表,如果没有where就直接返回结果,如果有where就对上一步的临时表再进行过滤. 在使用left j ...
- onkeydown、onkeypress、onkeyup、onblur、onchange、oninput、onpropertychange的区别
onkeydown:按下任何键(字母.数字.系统.tab等)都能触发,且对于字母不区分大小写: onkeypress:按下字母.数字键时触发,且对于字母区分大小写; onkeyup:相应的键和onke ...
- ASP.NET-未解决的问题
001.((FormsIdentity)User.Identity).Ticket.UserData 用ASP.NET后台格式化成json数据后传回去的数据有"这样的符号 002.HT ...
- sql系列(基础篇)-第一章 关于sysdate
第一章 主要的SQL语句 1. 查询数据库系统时间,常以server默认的格式进行显示(依据数据库的字符集而定): 注意:dual 为数据库中的虚表,隶属于管理员 sys 用户,但全部的用户都能够訪 ...
- 好莱坞原则—Spring的IOC容器
IOC容器的概念,之前在学习SSH的时候,就有接触过.但那时候也仅仅是知道这么个概念,认为它非常难理解.事实上并非它难理解,而是我并没有停下来好好对它总结梳理过. IOC(Inversion of C ...