HTTP协议

File协议和Http协议 统一资源定位符URL: 统一资源定位符是用来表示从互联网上得到的资源位置和访问这些资源的方法。互联网上的所有资源,都有一个唯一确定的URL。 URL相当于一个文件名在网络范围的扩展。因为访问不同对象所使用的协议不同,所以URL还要指出读取某个对象时所使用的协议。 URL的一般格式: <协议>://<主机>:<端口>/<路径> 协议:最常用的协议是http/https,其次是ftp 主机:指该主机在互联网上的域名,一个URL中也可以使用IP作为域名 端口 阅读详情

##用户访问网站的原理过程

1、用户打开浏览器输入地址后,按下回车
2、完成地址域名的解析过程(域名–IP地址的解析)
3、用户利用解析后的IP地址发起网络访问:三次握手过程
4、用户发起HTTP访问过程:HTTP请求信息
5、用户发起HTTP访问过程:HTTP响应信息
6、用户在浏览器看到页面
7、用户利用解析后的IP地址结束网络访问: 四次挥手过程
####域名

##DNS解析详解
image.png

本地shell查看DNS缓存相关命令

ipconfig /displaydns
查看DNS缓存
ipconfig /display
释放DNS缓存
ipconfig /flushdns
清空DNS缓存

查询域名对应的ip地址 DNS解析

dig  www.baidu.com 
dig  www.baidu.com www.jd.com
[root@web01 ~]# nslookup  www.baidu.com 
Server:     10.0.0.254
Address:    10.0.0.254#53

Non-authoritative answer:
Name:   www.baidu.com
Address: 182.61.200.6
Name:   www.baidu.com
Address: 182.61.200.7

[root@web01 ~]# host   www.baidu.com 
www.baidu.com has address 182.61.200.7
www.baidu.com has address 182.61.200.6
www.baidu.com is an alias for www.a.shifen.com.
www.baidu.com is an alias for www.a.shifen.com.

[c:\~]$ ping boke111.cn

正在 Ping boke111.cn [152.136.46.241] 具有 32 字节的数据:
来自 152.136.46.241 的回复: 字节=32 时间=56ms TTL=51
来自 152.136.46.241 的回复: 字节=32 时间=55ms TTL=51
来自 152.136.46.241 的回复: 字节=32 时间=56ms TTL=51
来自 152.136.46.241 的回复: 字节=32 时间=55ms TTL=51

152.136.46.241 的 Ping 统计信息:
    数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
    最短 = 55ms,最长 = 56ms,平均 = 55ms

image

HTTP请求报文的流程

image

image

image

HTTP请求报文的方法

get # 获得 请求文件信息的数据内容(下载)
post #用户提交数据至服务器端存储(上传)

http客户端请求报文

[root@web01 ~]# curl -v   www.baidu.com/lidao.jpg
 DNS解析 
* About to connect() to www.baidu.com port 80 (#0)
*   Trying 182.61.200.6...
TCP三次握手 
* Connected to www.baidu.com (182.61.200.6) port 80 (#0)
http请求报文  
> GET /lidao.jpg HTTP/1.1   ##请求起始行:
> User-Agent: curl/7.29.0    ##用户浏览器:
> Host: www.baidu.com      ##请求的域名  :
 > Accept: */*
空行        >

image

服务端响应报文

< HTTP/1.1 302 Found    ##响应起始行
< Cache-Control: max-age=86400  #控制缓存 
< Connection: Keep-Alive  
< Content-Length: 222           #响应的文件的大小 
< Content-Type: text/html; charset=iso-8859-1   #响应文件的类型
< Date: Mon, 03 Jun 2019 03:30:28 GMT
< Expires: Tue, 04 Jun 2019 03:30:28 GMT
< Location: https://www.baidu.com/search/error.html
< Server: Apache                #服务端信息 使用的什么网站服务
<                               #空行  
#响应的内容 
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>302 Found</title>
</head><body>
<h1>Found</h1>
<p>The document has moved <a href="http://www.baidu.com/search/error.html">here</a>.</p>
</body></html>
* Connection #0 to host www.baidu.com left intact

image

wireshark过滤规则(windows Linux)

request请求
response相应
source src 源
dest 目标
content 文件内容
书写 协议 http tcp ssh
ip + 协议
ip.addr == 118.31.120.171 and http

请求流程

image

响应流程

image

###网站状态码

200 :请求成功,处理方式为:获得用户所需内容
301 :永久性跳转(指将一个网站重新更名,原网址仍可登陆,只是跳转到新网址)
302 :临时跳转
304 :将一些经常出现的东西暂时存放(缓存)到本地,节省网站带宽
403 :网站拒绝黑客访问,控制频率,将攻击者拒绝(依照频率辨别) 1-2分钟后恢复正常
404 :访问网站信息不存在
500 :内部服务代码错误(找开发人员)
502 :后端节点出现问题,无法进行访问(负载均衡服务器—用户)
503 :服务器可能宕机
504 :超时访问,后端节点不能及时响应(负载均衡给用户做反馈)

###URL与URI含义

URL中文翻译为统一资源定位符,也被称为网址
URL共有三部分组成
1、协议:例如http
2、主机资源服务器IP地址或域名(端口号),例如:www.baidu.com
3、主机资源的具体地址,如目录和文件名,例如:oldboy/index.html

URI是用于标识某一互联网资源名称的字符串,这个字符串在世界范围内唯一标识并定位魔偶一个信息资源。互联网上每个可用的数据资源(如HTML、图片、视频等)都是通过统一资源标识符进行定位。
URL是URI的子集。

###静态页面VS动态页面
####静态页面

文字信息 图片 视频
网站只进行请求与响应
客户端浏览器进行处理(解析)
静态:web服务器自己能处理: nginx
搜索引擎容易收入
#####静态网站的特征:
1.每个页面都有一个固定的URL地址,且URL一般以.html、.htm、shtml等常见形式为后缀,而且地址中不含有“?”“&”等特殊符号。
2.网页内容一经发布到网站服务器上,无论是否有用户访问,每个网页的内容都是保存在网站服务器文件系统上的,也就是说,静态页面是实实在在保存在服务器上的文件实体,每个网页都是一个独立的文件。
3.网页内容是固定不变的,因此,容易被搜索引擎收录(容易被用户找到)
4.因为网页没有数据库的支持,所以在网站制作和维护方面的工作量较大,当网站信息量很大时,完全依靠静态网页比较困难。
5.网页的交互性差,在程序的功能实现方面有较大的限制。
6.网页程序在用户浏览器端解析,如IE浏览器,程序解析效率很高,由于服务器端不进行解析,并且不需要读取数据库,因此服务器端可以接受更多的并发访问。当客户端向服务器请求数据时,服务器会直接从磁盘文件系统上返回数据(不作任何解析)。待客户端拿到数据后,在浏览器端解析并展现出来。

####动态页面

交互信息 评论 上传
URL包含 & 符号 一半是动态页面
需要服务器进行处理 把处理好的结果发给客户端
动态:nginx+php/java
搜索引擎不容易收入交互信息 评论 上传
URL包含 & 符号 一半是动态页面
需要服务器进行处理 把处理好的结果发给客户端
动态:nginx+php/java
搜索引擎不容易收入
#####动态网站的特征:
1.网页扩展名后缀常为:.asp、.aspx、.php、.js、.do、.cgi等。
2.网页一般以数据库技术为基础,大大降低了网站维护的工作量。
3.采用动态网页技术的网站可以实现更多功能,如用户注册、用户登录、在线调查、投票、用户管理、订单处理、发博文等。
4.动态网页并不是独立存在于服务器上的网页文件,当用户请求服务器上的动态程序时,服务器解析这些程序并可能通过读取数据库来返回一个完整的网页内容。
5.动态页面中的“?”在搜索引擎的收录方面存在一定问题,搜索引擎一般不会从一个网站的数据库中访问全部网页,或者出于技术等方面的考虑,搜索蜘蛛一般不会去抓取网址中“?”后面的内容,因此在企业通过搜索引擎进行推广时,需要针对采用动态网页的网站做一定的技术处理(伪静态技术),以便适应搜索引擎的抓取要求。

###IP PV UV 衡量网站访问量的单位

衡量网站访问量的单位
IP 独立ip数量
PV 页面访问量
UV 独立的访客数,有多少人访问

###客户端请求与服务端响应过程

[root@web01 ~]# curl -v www.baidu.com/index.html
* About to connect() to www.baidu.com port 80 (#0)   DNS解析
*   Trying 39.156.66.14...
* Connected to www.baidu.com (39.156.66.14) port 80 (#0)   Tcp三次握手
> GET /index.html HTTP/1.1    http请求报文 ,请求起始行
> User-Agent: curl/7.29.0     用户的浏览器
> Host: www.baidu.com         请求域名
> Accept: */*   
>                           空行
< HTTP/1.1 200 OK
< Accept-Ranges: bytes
< Cache-Control: private, no-cache, no-store, proxy-revalidate, no-transform
< Connection: Keep-Alive
< Content-Length: 2381
< Content-Type: text/html
< Date: Mon, 03 Jun 2019 03:32:03 GMT
< Etag: "588604c8-94d"
< Last-Modified: Mon, 23 Jan 2017 13:27:36 GMT
< Pragma: no-cache
< Server: bfe/1.0.8.18
< Set-Cookie: BDORZ=27315; max-age=86400; domain=.baidu.com; path=/
< 
<!DOCTYPE html>
<!--STATUS OK--><html> <head><meta http-equiv=content-type 
content=text/html;charset=utf-8><meta http-equiv=X-UA-Compatible 
content=IE=Edge><meta content=always name=referrer><link rel=stylesheet 
type=text/css href=http://s1.bdstatic.com/r/www/cache/bdorz/baidu.min.css><title>
百度一下,你就知道</title></head> <body link=#0000cc> <div id=wrapper> <div 

[root@web01 ~]# curl -v www.baidu.com/index.html

  • About to connect() to www.baidu.com port 80 (#0) DNS解析
  • Trying 39.156.66.14…
  • Connected to www.baidu.com (39.156.66.14) port 80 (#0) Tcp三次握手
    > GET /index.html HTTP/1.1 http请求报文 ,请求起始行
    > User-Agent: curl/7.29.0 用户的浏览器
    > Host: www.baidu.com 请求域名
    > Accept: /
    > 空行
    < HTTP/1.1 200 OK

image.png

#Http协议与HTTPS原理、动静态网页的区别

相关链接:

HTTP协议超详细:
https://www.nfsnobody.com/1029.html
HTTP1.0/1.1/2.0:
http://www.sohu.com/a/161201715_714863
https://www.cnblogs.com/zhengshiqiang47/p/8673559.html
OSI七层协议图解分享:
https://www.cnblogs.com/Robin-YB/p/6668762.html
HTTPS协议:
https://www.xuliangwei.com/bgx/337.html
DNS原理总结:
https://blog.youkuaiyun.com/wyq_tc25/article/details/51679520
https://blog.youkuaiyun.com/wytheonly/article/details/37925067
DNS递归和迭代:
https://blog.youkuaiyun.com/gui951753/article/details/79972709

1.什么是HTTP协议

http是一个超文本传输协议
http建立在应用层协议基础之上
http默认端口80, https默认端口443
一次tcp的链接,可以包含多次http的请求

  • HTTP协议,全称HyperText Transfer Protocol,中文名为超文本传输协议
    是互联网中最常用的一种网络协议。HTTP的重要应用之一是 WWW服务。
    设计 HTTP协议最初的目的就是提供一种发布和接收HTML (一种页面标记语言)页面的方法。

  • HTTP协议是互联网上常用的通信协议之一。它有很多的应用,但最流行的就是用于Web浏览器和Web服务器之间的通信,即WWW应用或称Web应用。
    www ,全称World Wide Web ,常称为Web ,中文译为"万维网

  • www是目前互联网上最受用户欢迎的信息服务形式。HTTP协议的 WWW服务应用的默认端口为80,另外一个加密的WWW服务应用https的默认端口为443,主要用于网银、支付等和钱相关的业务。当今,HTTP服务、WWW服务、Web服务三者的概念已经混淆了,都是指当下最常见的网站服务应用。

  • HTTP属于OSI网络七层协议模型中的"最上层":应用层。由请求和响应构成,是一个标准的客户端服务器模型。HTTP是一个无状态的协议。

2.HTTP1.0 /1.1 /2.0区别

HTTP/1.0 规定浏览器和服务器只保持短暂的连接(TCP短链接)
HTTP/1.1 支持持久连接,在一个TCP连接上可以传送多个HTTP请求和响应,减少了建立和关闭连接的消耗和时间延迟(TCP长连接)
HTTP2.0使用多路复用技术,多路复用允许同时通过单一的 HTTP/2 连接发起多重的请求-响应消息。

image

image.png

3.什么是超文本

包含有超链接(Link)和各种多媒体元素标记的文本。这些超文本文件彼此链接,形成网状(Web),因此又被称为网页(Web Page)。这些链接使用URL表示。

最常见的超文本格式是超文本标记语言HTML。

image.png

4.什么是超文本传输协议

超文本传输协议HTTP是一种按照URL指示,将超文本文档从一台主机(Web服务器)传输到另一台主机(浏览器)的应用层协议,以实现超链接的功能。

5.HTTP工作原理

image.png

1.发起dns请求
2.获取到域名对应的IP地址
3.浏览器发起tcp的连接
4.基于tcp的连接,传输http的请求(一次tcp的连接,可以建立多次的http请求)
5.浏览器请求/index.html
6.服务器响应/index.html至浏览器
7.浏览器翻译index.html中的内容为人类可读
8.断开TCP的四次挥手

image.png

image.png
image.png

6.DNS解析时的递归和迭代

DNS:“域名系统”。用于TCP/IP网络,它从事将主机名或域名转换为实际IP地址的工作。DNS就是样的一位“翻译官”

image

在需要DNS解析的客户端,比如说笔记本,当我们解析www.baidu.con时我们会先进行下面的操作。
操作系统会先检查自己本地的hosts文件—>查找本地DNS解析器缓存(笔记本的缓存)

image

image


相关链接:
动静态网站区别:
https://blog.youkuaiyun.com/tb9125256/article/details/81152680
http://www.sohu.com/a/244725742_100148389

7.什么是静态网页

静态网站就是没有釆用任何程序开发的网站纯粹釆用HTML语言编写,不要求懂太多网站制作知识,使用一般的软件就可以制作网页了。网页文件名后缀是用和htm或者html结尾的,同时网页设计好并上传到服务器后,不能对网站的内容进行修改了;除非把网站文件下载到电脑上,用专业的网站制作软件修改编辑好后再次上传。所以大家可以理解为,静态网站就是无法在直接在网络上实时更新内容的网站,就纯粹的几个制作好的页面而已。

做静态网站设计所采用的技术原理是一对一的形式,也就是说这样的网站上面,一个内容对应的就是一个页面,无论网站访问者如何操作都只是让服务器把固有的数据传送给请求者,没有脚本计算和后台数据库读取过程,大大降低了部分安全隐患。静态网站设计除了拥有上述的速度快,安全性高这两个特点之外还具有跨平台,跨服务器功能。

8.静态网站的优缺点

静态网站的好处:
1静态网站打开的速度相对比较快,因为它没有其他的程序和数据读取;
2.静态网站容易被搜索引擎收录。
3静态网站比较安全,重要数据不会丢失。

静态网站的坏处:
1不能直接对网站内容进行修改,维护操作比较繁琐。
2实现不了会员注册和在线留言等功能,只能简单的以信息及产品展示为主。
3如果网站内容非常多,采用静态网站制作是非常繁琐的过程,每个页面都要单独制作,无形地增加的空间的占用率。

整体来说,静态网站只适用于做一个非常简单的网站。其开发成本相对比较低。

9.什么是动态网页

1.动态网站并不是说网站上有一些动态的图片、fash之类的东西就属于动态网站,一般情况下,动态网站是先从数据库里面获取数据再显示到网站页面上的,网站内容实时更新。与用户交互性强,比如说一些论坛、注册页面等都属于动态的。因为每次新加载一个页面,就需要与后台数据库通信,所以对网站空间的要求也相对静态网站高一些,多了一层通信,加载速度也会稍慢一些。动态网站url可能会带有参数。

2.与静态页面网站设计不同,asp生成的动态页面信息不但不易被搜索引擎所检索,而且打开网速慢,再者也不稳定,这就是为什么这么多专业建设公司都一再建议客户使用静因,有些网站建设公司会考虑把页面进行伪静态处理,但不知道大家有没有注意过,伪静态处理的URL通常是不规则的。

3.动态网站和静态网站相反,动态网站制作好后,都有一个网站管理后台,以管理员的身份登录之后,就可以对整个网站的内容进行增刪改操作。直接在网上完成,所以动态网站比较方便日常管理,这也是受客户喜爱的原因。

4.动态网站并非页面有动画才是动态网站,正是由于它能随时能实现更新网站内容,即后台修改,前台马上显示修改后的内窨,这样的便捷、交互性操作才是动态的函义。

可以理解为,动态网站就是带数据库的,可以日常更新的网站。

10.动态页面的优点

1.维护方便,能实现人们需要的各种需求。
2.查询信息方便,能存储大里数据,需要时能立即查询

多智能体强化学习论文——SEAC(NIPS 2020) 存在的问题&研究动机&研究思路 在稀疏奖励的环境下,多智能体的exploration存在效率不足等问题。 在IAC的基础上尝试加入重要性采样,使得每次更新智能体iii的参数时,不再仅仅使用智能体iii的数据,而是使用所有智能体的数据进行智能体iii数据的更新。 对于原始的IAC算法是on-policy的,而SEAC则是off-poligy的。 创新点 在每个智能体iii的actoriactor_iactori​和criticicritic_icritici​的更新过程中,都加入了重要性 阅读详情

相关推荐

PCIe学习笔记(一)-------1.3 PCIe数据包(TLP,DLLP,PLP)

1,PCIe的层次结构 PICe设备在硬件电路上可以分为三个层次结构:事务层(Transaction Layer)、数据链路层(Data Link Layer)、物理层(Physical)。每一个层次又可以分为两个部分,分别为处理发送和处理接收的部分。 也可以分为四个层次,将事务层以上的层次称为软件层(Software Layer)。 2,PCIe数据包 前面已经说过PCIe之间是以数据包的形式来传输数据的,协议共定义了3类数据包。与处理层相关的是处理层数据包(TLP),与数据链路层相关的是数据

llxxyy507的博客 2万+

curl在DNS异常情况下的处理办法

1.首先要明白什么是DNS 2.了解dns的概念后,要明白什么是dns污染 3.问题场景:在linux或者mac中的终端命令行中使用诸如:curl,wget等下载命令进行资源下载时,有时候会提示对某个域名的请求超时,导致下载出错。解决办法: (1)先查看自己的网络是否通畅 (2)如果通畅,则很大可能是dns被污染的情况,此时就需要查出该域名对应的正确ip地址(点击进入域名ip查询网址),并将该ip地址写入到/etc/hosts文件中,此时再使用这些下载命令,就可以正常下载了。 ...

caozhennan824的博客 2116

灰度发布、蓝绿部署、双活架构与数据同步/备份/迁移

本文系统介绍了现代互联网系统的核心部署策略与数据管理技术体系。主要内容包括:1)三种服务发布策略(灰度发布、蓝绿发布、滚动发布)的原理、实现方式和适用场景对比;2)高可用架构设计(同城双活、异地双活、异地多活)的技术方案;3)数据同步机制、备份策略与迁移方案的设计要点。文章通过架构图、流程图和配置示例详细展示了各类技术的实施方法,并分析了不同方案的优劣及风险控制措施,为构建高可用、高可靠的分布式系统提供了完整的技术指南。

zane的博客 515

curl用法1

function isRealUrl($url){      $ch = curl_init();      $options = array(         CURLOPT_URL => $url,         CURLOPT_HEADER => true,         CURLOPT_RETURNTRANSFER => true,         CURLOPT_NOBODY => true         );      curl_setopt_array($ch, $options);  

lukylfm的专栏 2027

Multisim实现555计时器模拟简易电子琴

一. 元器件介绍 这里用到的元器件有: DIgital power(VCC)数字电源 频率计数器(XFC) 示波器(XSC) ground 数字地 Capacitan 电容器 Resistor 电阻器 555_VIRTUAL 555计时器 触发按键(DIPSW)(DPST)(SPST)

是你呀星途的博客 2万+

一文入门BMS(电池管理系统)

本文章是基于曾师兄的文稿《具有组网扩展功能的新能源汽车电池管理系统》而写的文章。该文章主要是对BMS(Battery Management System,电池管理系统)做一些简要的介绍,借此助各位也助我入门BMS。有纰漏请指出,转载请说明。学习交流请发邮件 1280253714@qq.com。

weixin_45817947的博客 2万+

【DNS缓存】解决:curl 命令调用正常,程序调用报 java.net.ConnectException: connection refused

curl 命令调用正常,程序调用报 java.net.ConnectException: connection refused,发现是 DNS 缓存问题!

大志的学习笔记 3442

基于LSTM语义分析的企业风险预测系统

在数字化时代,企业面临着前所未有的挑战和机遇,而风险管理作为确保企业稳定发展的关键一环,其重要性日益凸显。为了及时、准确地监测和分析企业相关的风险,并预测可能带来的风险,本文介绍了一种基于长短期记忆(LSTM)语义分析的企业风险预测系统。该系统利用深度学习技术,通过将收集到的企业数据进行预处理和分析,结合LSTM模型对文本进行深度语义分析,从而实现对潜在风险的预测和评估。系统设计方面,该系统包括数据预处理、LSTM模型构建与训练、风险预测以及可视化展示等模块。

qiufangtaowvnyyidtf的博客 1392

linux curl 清除缓存,curl常用命令参数及用法

下载[root@localhost ~]# curl -O http://mirrors.example.com/abc.tar.gz登录验证并下载[root@localhost ~]# curl -u username:password -O http://mirrors.example.com/abc.tar.gz下载并重命名文件名称[root@localhost ~]# curl -o 12...

weixin_33829335的博客 4428

Ubuntu安装opencv4.5(自己安装过程详细)

1.下载opencv 在opencv官网下载source版,下载链接 http://opencv.org/releases.html。别下载错版本 下载过程就不多说了。 2.安装过程 2.1解压 unzip opencv-4.5.0.zip cd opencv-4.5.0 2.2安装依赖的库 sudo apt-get install cmake sudo apt-get install build-essential libgtk2.0-dev libavcodec-dev libavformat-

weixin_45629790的博客 1万+

linux系统中实现智能家居的基本方法

使用QT开发智能家居中的一个物联应用,通过云服务器远程控制设备与设备进行通信。在生活中,可以使用WIFI智能插座控制电器开关,比如远程开启热水器,远程打开空调,窗帘等等。包括:WIFI联网,注册到云服务器上,编写QT UI通过网络来与云服务器通信,然后再下发指令到这个连网的设备。硬件说明:需要有一个串口转WIFI模块,另外需要加上一个USB-TTL模块,外加一根T口USB连接线,可接入PC电脑调试。

嵌入式技术开发 2608

curl dns缓存设置

CURLOPT_DNS_USE_GLOBAL_CACHE 启用时会启用一个全局的DNS缓存,此项为线程安全的,并且默认启用。CURLOPT_DNS_CACHE_TIMEOUT 设置在内存中保存DNS信息的时间,默认为120秒。 1)fopen/file_get_contents 每次请求远程URL中的数据都会重新做DNS查询,并不对DNS信息进行缓存。但是CURL会自动对DNS信息进行缓存。对...

weixin_30480583的博客 2154

数学建模学习(121):Python实现模糊AHP(Fuzzy AHP)——从原理到实践

Python实现模糊AHP(Fuzzy AHP)

全栈川川 1541

http协议及基于http协议的文件下载

目录 1. HTTP 协议概述 2. URL 与资源 3. HTTP报文 4. 使用Postman 获取数据 5. 基于HTTP协议的文件下载 5.1 文件整体下载 5.2 文件分段(Range)下载 5.2.1 获取文件的大小 5.2.2 下载分段文件 5.3 文件分块(chunk)下载 1. HTTP 协议概述 日常我们使用网络用得最多的无疑是在Web 浏览器(下文统...

Xanthium 2万+

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

http协议是什么?http协议的由来和发展

http协议解析–第一篇 http协议的由来 http协议是什么? 在说http的历史之前,我们先来说清楚http协议是什么? [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 随便百度一下,就会出来上万条的检索结果,其中都会提到“Http就是超文本传输协议”(英文:HyperText Transfer Protocol,缩写:HTTP),没错!这就是http的定义,ht...

weixin_42217106的博客 2408

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

HTTP协议&SOCKET协议

一、 HTTP协议是什么? 我们在浏览器的地址栏里输入的网站地址叫做 URL(UniformResourceLocator,统一资源定位符)。就像每家每户都有一个门牌地址一样,每个网页也都有一个Internet地 址。当你在浏览器的地址框中输入一个URL或是单击一个超级链接时,URL就确定了要浏览的地址。浏览器通过超文本传输协议(HTTP),将Web服务器 上站点的网页代码提取出来,并翻译成漂亮...

Super_King_的博客 930

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

【HTTP】HTTP协议 && HTTPS 协议

HTTP(超文本传输协议)是一种应用非常广泛的应用层协议。HTTPs 是在 HTTP基础之上做了一个加密解密的工作。平时我们打开一个网站,就是通过HTTP协议来传输数据的。(所谓 "超文本" 的含义, 就是传输的内容不仅仅是文本(比如 html, css 这个就是文本), 还可以是一些其他的资源, 比如图片, 视频, 音频等二进制的数据)一个完整应用是由前端+后端构成的,而前后端之间的通讯是要依靠HTTP来完成的。

qq_48479056的博客 5246

http协议、TCP协议

1).http是用于从万维网服务器传输超文本到本地浏览器的传送协议(HyperText Transfer Protocol)。超文本传输协议是面向事务的、一种应用层协议,其规定了在浏览器和服务器之间的请求和响应的格式和规则,它是万维网上能够可靠交换文件(包括文本、声音、图像等各种多媒体文件)的重要基础。2).HTTP是一个 客户端和 服务器端请求和应答的标准。客户端是终端用户,服务器端是网站。

jz661277的博客 1730

HTTP协议:一.什么是 HTTP 协议?

前言:本篇文章主要参考自《图解HTTP》,在学习期间也查询过其他资料。仅作为个人的学习记录。​ HTTP 协议和 TCP/IP 协议族内的其他众多协议相同,用户客户端和服务器之间的通信.​ 访问文本或者图像资源的一段称为客户端,而提供资源响应的一端称为服务器端超文本也就是 HTML,当我们发送 HTTP 请求的时候,响应就会返回相应的页面.HTTP 是一种不保存状态的协议,即**无状态协议.**HTTP 协议自身不对请求和响应之间的通信状态进行保存.图:HTTP 协议自身不具备保存之前发送过的请求或响应的功

m0_51928077的博客 3939

HTTP协议-什么是HTTP协议

HTTP协议-什么是HTTP协议   HTTP协议(Hypertext Transfer Protocol,超文本传输协议)是用于从WWW服务器传输超文本到本地浏览器的传送协议。它可以使浏览器更加高效,使网络传输减少。   我们在浏览器的地址栏里输入的网站地址叫做URL(UniformResourceLocator,统一资源定位符)。就像每家每户都有一个门牌地址一样,每个网页也都有一个In

bestlove12345的博客 905

HTTP协议详解

HTTP,即超文本传输协议(Hypertext Transfer Protocol),是一种应用层协议,用于从网络传输超文本到用户的浏览器。它定义了客户端和服务器之间请求和响应的格式。HTTP不仅是构建现代网络应用的基础,也是我们进行功能测试、性能测试和安全测试的关键点。通过掌握HTTP协议的工作原理和报文结构,我们可以更有效地设计测试案例,识别潜在的问题,并对网络交互进行精确的测试。

blues_C的博客 2522

HTTP协议的诞生

HTTP协议的诞生 1、什么是HTTP协议 ​ HTTP(HyperText Transfer Protocol,超文本传输协议)是一种主要由web使用的协议规范,完成从客户端到服务器端的一系列运作流程。 注:超文本传输协议这种译法并不严谨,严谨的译名应该为“超文本转移协议”。详细情况可参考http://www.ituring.com.cn/article/1817 ​ “transport”...

不知道灬都不知道 1240

HTTP 协议

(1)GET 也可以给服务器传递一些信息,只不过 GET 传递的信息一般都是放在query string;而POST 传递信息则是通过 body(2)GET 请求一般是用于从服务器获取数据,POST 一般是用于从服务器提交数据(语义上的差别)(3)GET 通常会被设计成幂等的,而 POST 不要求幂等(4)GET 可以被缓存;而POST 一般不能被缓存。

weixin_73616913的博客 3249

HTTP协议深入

灵活可扩展、首部、内容、状态码都可自定义可靠的传输协议、基于TCP协议是一个应用层协议,与ftp、smtp相比应用更广泛采用请求应答通讯模式,客户端和服务端(C/S)无状态的协议实体数据可分段、可压缩、支持多语言、灵活编码。

伏颜的博客 1026

HTTP协议——与HTTP相关的协议

        在TCP/IP协议族中与HTTP密不可分的有3个协议,分别是IP、TCP和DNS。下面简单介绍下这3种协议。1、IP协议        IP(Internet Protocol)网际协议位于网络层,几乎所有使用网络的系统都会用到 IP 协议。TCP/IP 协议族中的 IP 指的就是网际协议,"IP"和"IP地址"是不同的,"IP"其实是一种协议的名称。        IP 协议的作...

vikeyyyy的博客 3232
上一篇: ansible批量管理服务
下一篇: Nginx服务
酷酷的伟
博客等级 码龄7年 12粉丝 56原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值