`
king_tt
  • 浏览: 2275934 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

JavaWeb学习篇之----HTTP协议详解

 
阅读更多

简介:

HTTP是hypertexttransfer protocol(超文本传输协议)的简写,它是TCP/IP协议的一个应用层协议,用于定义WEB浏览器与WEB服务器之间交换数据的过程。
HTTP协议是学习JavaWEB开发的基石,不深入了解HTTP协议,就不能说掌握了WEB开发,更无法管理和维护一些复杂的WEB站点。HTTP协议的版本:HTTP/1.0、HTTP/1.1

HTTP/1.0和HTTP/1.1的区别
HTTP1.0协议:客户端与web服务器建立连接后,只能获得一个web资源,在获取资源之后就断开连接。
HTTP1.1协议:允许客户端与web服务器建立连接后,在一个连接上获取多个web资源都不会断开连接,除非是访问出错和手动断开连接。

下面使用telnet命令来举例说明:
首先启动telnet来连接上tomcat服务器,然后输入请求内容获取资源:
这里可能会出现一些问题:详情请见:http://www.oschina.net/question/234345_53824
同时我们还需要在tomcat的webapp目录中新建一个aa工程,在该工程中新建一个index.html文件,文件中输入点内容。
连接上tomcat服务器之后,输入命令:GET /aa/index.html HTTP/1.0



从上图可以查看在使用HTTP/1.0的时候,访问到了数据之后就断开了连接。

下面再来使用HTTP/1.1测试一下:输入命令:GET /aa/index.html HTTP/1.1



当获取玩数据之后并没有断开连接,还可以继续输入命令进行请求。

通过上面的例子看以看到HTTP/1.0和HTTP/1.1的区别了。

下面再来看一下一个简单的web页面中每个资源标签都会发送一次请求,这里我们来验证的话需要辅助工具了:HttpWatch Pro工具,这就是一个web抓包工具,可以监测http请求的。安装很简单的。我们这里使用IE浏览器测试:http://localhost:8080/aa/index.html:



我们看到只有一次Get请求。下面我们在/aa/index.html文件中添加内容:

<img src="1.jpg"/>
<img src="2.jpg"/>
<img src="3.jpg"/>

这是使用了三个图片标签,我们再次访问:http://localhost:8080/aa/index.html



我们可以看到发生了四次请求,其中有三次是来请求图片资源的。
同理:脚本标签也是一样,所以像一些资源标签会发生一次请求的,所以我们在设计网站的时候为了网页的访问性能,我可能会将多个资源整合起来,比如:三张图片可能整合到一张,三个脚本文件可能整合到一个文件中。这些举措都是为了访问性能。当然这种情况肯定是视情况而定的。

HTTP的请求内容

一个完整的HTTP请求包含:

1.一个请求行(GET /aa/index.html HTTP/1.0)

2.若干个请求头(告诉服务器客户端的一些信息)

3.实体内容(请求的时候需要向服务器传递的内容)。


注意:请求行,请求头,然后后空一行,请求信息(如表单提交数据为post方式)。


请求行:用于描述客户端的请求方式,请求的资源名称,以及使用的HTTP的协议版本号

GET /aa/index.html HTTP/1.0


请求头:

告诉服务器一些客户端的信息


Accept:用于告诉服务器,客户机支持的数据类型(值为:text/html(文本),image(图片),/*/(任何类型)

Accept-Charset:客户机采用的编码

Accept-Encoding:客户机支持的压缩格式

Accept-Language:客户机的语言环境,不同国家访问的内容也是不同的,就是通过这个头实现的,用于实现国际化

Host:告诉服务器,想访问的主机名

If-Modified-Since:客户机将这个头信息发送给服务端,服务端进行比对,告诉客户机是否去拿缓存,和服务器端返回的Last-Modified值是相等的

If-None-Match:客户机将这个头信息发送给服务端,服务端进行比对,告诉客户机是否去拿缓存,和服务器端返回的Etag值是相等的

Referer:客户机告诉服务器,他是从哪个资源来访问服务器的(防盗链),通过检查该头是否是从本网站点击过来的,如不是的,就让他跳到本网站的首页来

User-Agen::客户机告诉服务器,客户机的软件环境

Cookie:客户机通过这个头向服务器带点数据

Connection:客户机的连接状态(close:关闭连接 Keep-Alive:不会断开连接)


例子:



这个是我在访问http://localhost:8080/aa/index.html,可以看到请求信息。


以上的内容为多个消息头,用于描述客户端请求哪台主机,以及客户端的一些环境信息等

请求行中的GET称之为请求方式,请求方式:post,get,head,options,delete,trace,put,常用的有:get,post,用户没有设置,默认情况下浏览器向服务器发送的都是get请求,例如在浏览器直接输地址访问,点击链接访问都是get,用户如想把请求方式改为post,可通过更改表单form的提交方式实现.不管post或get,都用于向服务器请求某个web资源,这两种方式的区别主要表现在数据传递上:请求方式为get方式,则可以再请求的URL地址后以?的形式带上交给服务器的数据,多个数据之间以&进行分割,同时在URL地址后附带的参数是有限制的,其数据容量通常不能超过1k,若请求方式为post方式,则可以再请求的实体内容中向服务器发送数据,post方式的特点:传送的数据无限制.

<a href="/2.html?name=jiangwei">2.html</a>

点击这个链接就是一个get方式,而且携带了name字段值




点击链接是Get方式,而且是在资源地址后面携带信息的。


同时再看一下Referer这个请求头,这个头代表的是从当前页面是从哪个页面跳转过来的:



我们点击上面的2.html超链接,跳转到了2.html页面这时候可以看到请求头中的Referer:http://localhost:8080/aa/index.html,表明2.html页面是从index.html页面跳转过来的,这个请求头的作用还是很大的,主要用于防盗链,比如用户点击了一个链接跳转到一个页面中,该页面的网站站长发现这个用户不是从指定的页面中跳转过来的,所以就会让页面跳转到该网站的首页,让用户从该网站的首页跳转到该页面。


下面在/aa/index.html文件中添加一个表单:

<form action="/2.html" method="post">
	<input type="text" name="name"/>
	<input type="submit"/>
</form>
在文本框中输入内容,点击提交按钮:



可以看到这种方式是post方式,而且在请求头之后空一行,是请求内容信息。


HTTP的响应内容

响应头:

用于描述服务器的基本信息,以及数据的描述,服务器通过这些数据的描述信息,可以通知客户端如何处理等一会它会送的数据

Location:这个头配合302状态码使用,用于告诉用户找谁

response.setStatus(302);
response.setHeader("Location","/aa/1.html");

请求重定向,判断浏览器的地址栏的地址是否发生变化,实例是用户登录

Server:服务器通过这个头,告诉浏览器的类型

Content-Encoding:服务器通过这个头,数据的压缩格式,收费是靠数据出口量算的, 所以为了省钱和效率高,要进行数据压缩,jdk中的GZIPOutputStream类,压缩类流,包装流和底层流,最好将包装流关了或者刷新,数据写入到底层流中去,

response.setHeader("Content-Encoding","gzip");
response.setHeader("Content-length",gzip.length+"");

Content-Length:服务器会送的数据的长度

Content-Type:服务器会送数据的类型,response.getOutputStream().write();服务器会送数据都是二进制,通过这个头,可以告诉浏览器这个二进制是什么类型,

InputStream in = this.getServletContext().getResourceAsStream("/1.jpg");
int len = 0;
byte buffer[] =new byte[1024];
OutputStream out =response.getOutputStream();
while((len=in.read(buffer))>0){
out.write(buffer,0,len)
}

在服务器的目录下的web.xml中查看各个数据类型的respose.setHeader("content-type","")的写法.

Refresh:告诉浏览器隔多长时间刷新一次,response.setHeader("refresh","3;url=""")控制浏览器隔三秒跳到指定的网页上

Content-Disposition:告诉浏览器以下载的方式打开文件

response.setHeader("content-disposition","attachment;filename=1.jpg);

Transfer-Encoding:告诉浏览器数据的传送格式

Last-Modified:服务端文件的最后修改时间,这个值返回给客户端,客户机第二次访问服务器时带来的If-Modified-Since的值和服务器的值一样,就拿缓存给客户,实时更新,

ETag:缓存相关的头,服务器根据数据的内容生产一个字符串,客户机第二次访问服务器时带来的If-None-Match的值和服务器的值一样,就拿缓存给客户,实时更新,

Expires:高速浏览器,把会送的资源缓存多少时间,-1或0,则是不缓存的

Pragma:no-cache

Cache-Control:no-cache

Date:控制浏览器不要缓存数据,当数据不发生改变时,就要缓存,当实时性要求很高的数据不能缓存.

响应行:

HTTP /1.1 200 OK :状态行,用于描述服务器对请求的处理结果

格式:HTTP版本号 状态码 原因叙述

状态码用于表示服务器对请求的处理结果,他是一个三位的十进制数,响应状态码分为5类,

100-199:表示接收请求,要求客户端继续提交下一次请求才能完成整个处理过程

200-299:表示成功接收请求并已完成整个处理过程,常用200

300-399:为完成请求,客户需进一步细化请求,例如,请求的资源已经移动一个新地址,常用302(你请求我,我叫你去找别人),307和304(拿缓存)

400-499:客户端的请求有错误,常用404,403(没有权限访问,之前我们在打开Tomcat Manager页面的时候遇到过)

500-599:服务器端出现错误,常用500


实体内容:

在响应头后面空一行是服务器返回的实体内容:

<HTML>

<BODY>

...........


下面我们来写一点服务端的代码,这样才能够明了的展示各个响应头的作用。下面就在MyEclipse中新建一个Web应用:



在工程中新建一个ServletDemo1.java来编写服务端的代码:代码如下:
package com.http.demo;

import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.zip.GZIPOutputStream;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class HttpServletDemo extends HttpServlet {

	private static final long serialVersionUID = -7234797658264000867L;

	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {
		//测试
		try{
			//test1(resp);//location响应头
			//test2(resp);//Content-Encoding响应头
			//test3(resp);//Content-Type响应头
			test4(resp);//refresh响应头
			//test5(resp);//content-disposition
		}catch(Exception e){
			e.printStackTrace();
		}
	}

	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {
		doGet(req,resp);
	}
	
	//使用响应头location和302状态码实现请求重定向(地址栏中的地址发生改变)
	public void test1(HttpServletResponse response){
		response.setStatus(302);
		response.setHeader("Location", "/aa/3.html");
	}
	
	//使用响应头Content-Encoding实现数据的压缩输出
	public void test2(HttpServletResponse resp) throws Exception{
		//压缩数据很大的时候压缩效率才有体现,如果数据很小的话反而更大
		
		//压缩资源:提高网页的访问性能,电信按照出口流量收钱的。
		String data = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";//压缩数据大点还有效果
		System.out.println("压缩前的数据大小:"+data.length());
		ByteArrayOutputStream bout = new ByteArrayOutputStream();//底层流
		GZIPOutputStream gout = new GZIPOutputStream(bout);//包装流一般有缓冲,没有把缓冲区写满,不会写到底层流
		gout.write(data.getBytes());
		gout.close();//等于刷新操作,将包装流中的信息刷新
		
		byte gzip[] = bout.toByteArray();//得到压缩后的数据
		
		System.out.println("压缩后的数据大小:"+gzip.length);
		
		//通知浏览器数据采用压缩格式
		resp.setHeader("Content-Encoding", "gzip");
		resp.setHeader("Content-Length", gzip.length+"");//表明长度
		resp.getOutputStream().write(gzip);//压缩数据写给浏览器
	}
	
	//使用响应头content-type设置服务器返回给client的数据类型
	public void test3(HttpServletResponse resp) throws Exception{
		//具体可以查看tomcat目录中的web.xml文件
		resp.setHeader("Content-Type","image/jpeg");
		InputStream ins = this.getServletContext().getResourceAsStream("/1.jpg");
		int len = 0;
		byte[] buffer = new byte[1024];
		OutputStream ops = resp.getOutputStream();
		while((len = ins.read(buffer))!=-1){
			ops.write(buffer, 0, len);
		}
		ops.close();
	}
	
	//使用响应头refresh实现页面的定时刷新
	public void test4(HttpServletResponse resp) throws Exception{
		//股票,聊天室
		
		//填充的值为:3;url="http://www.baidu.com"表示3s之后跳转到http://www.baidu.com页面
		//如果没有http://www.baidu.com的话,只是在该页面进行刷新
		resp.setHeader("refresh", "3;url=\"http://www.baidu.com\"");
		String data = "aaaaaaaaaaaaaa";
		resp.getOutputStream().write(data.getBytes());
	}
	
	//使用响应头content-disposition实现客户机用下载的方式打开数据资源
	public void test5(HttpServletResponse resp) throws Exception{
		resp.setHeader("content-disposition","attachment;filename=1.jpg");
		InputStream ins = this.getServletContext().getResourceAsStream("/1.jpg");
		int len = 0;
		byte[] buffer = new byte[1024];
		OutputStream ops = resp.getOutputStream();
		while((len = ins.read(buffer))!=-1){
			ops.write(buffer, 0, len);
		}
	}
	
}


启动Tomcat将应用部署好,在浏览器中输入:http://localhost:8080/HttpDemo/HttpServletDemo

第一:测试响应头字段:Location:重定向
测试test1()方法:



在test1()方法中我们指定了重定向的页面是/aa/3.html,而且重定向的一个最明显特征就是地址栏中的地址会发生改变,这个主要用在用户登录的时候,当用户登录成功之后要重定向到指定页面。

第二:测试响应头字段:Content-Encoding:实现压缩输出
测试test2()方法:



我们可以看到压缩输出了,指定的是gzip压缩输出。这里同时还要指定Content-Length头字段表示返回数据的长度。同时我们在MyEclipse中的控制台中可以看到:


压缩之前的数据大小和压缩之后的数据大小是4倍,这个效率很高的,这个压缩头字段的作用很大,对于大型的网站像新浪,搜狐这样的门户网站,他们的首页很复杂的,所以这里必须要做压缩输出:有两个原因:1.压缩数据之后返回给客户机很明显能够提高该页面的访问性能。2.能够减少费用(压缩数据少了,出口流量就少了,这样运营商收费就会减少)

第三:响应头字段:Content-type:告诉浏览器返回的数据类型
测试test3()方法:



我们将像客户机返回一张图片,指定类型是imag/jpeg即可,这里这个字段填写的格式我们可以参考tomcat目录中的web.xml文件中的所有类型的格式:



这里就列举了所有mime类型的书写格式。

第四:测试响应头:refresh:定时刷新
测试test4()方法:
因为又刷新的功能,这里不能截图了,自行演示。
这个头字段的作用用途很多的,比如股票页面那些数据是需要定时刷新的,还有网页聊天室,这里的聊天内容也是要定时刷新的。这样我们只需要设置这个头即可:
resp.setHeader("refresh", "3");
每隔3s刷新该页面
如果我们希望页面隔多少秒之后跳转到指定页面:比如我们在网页中认证完之后,3s之后跳转到首页,只需要设置如下即可:
resp.setHeader("refresh", "3;url=\"http://www.baidu.com\"");
这个就是说3s之后跳转到baidu首页。

第五:测试响应头:Content-disposition:告诉浏览器以下载的方式打开文件
测试test5()方法:



这里我们还是使用1.jpg这张图片,告诉浏览器已下载的方式打开图片。

总结:上面我们就介绍了HTTP的相关知识,关于HTTP的知识是很重要的,他是学习web的基石,所以我们一定要搞定这里面的所有知识,才能进行下一步的开发。

分享到:
评论

相关推荐

    台州市乡镇边界,shp格式

    shp格式,可直接导入arcgis使用

    perl516-perl-Time-Piece-1.20.1-19.el6.centos.alt.x86_64.rpm

    perl516-perl-Time-Piece-1.20.1-19.el6.centos.alt.x86_64.rpm

    基于蒙特卡洛模拟的电动汽车接入对配电网影响研究:灵活容量预测、潮流计算与电压稳定性优化分析,基于蒙特卡洛法的电动汽车无序接入对配电网影响的分析 采用蒙特卡洛法对电动汽车的接入容量进行预测 再将预测

    基于蒙特卡洛模拟的电动汽车接入对配电网影响研究:灵活容量预测、潮流计算与电压稳定性优化分析,基于蒙特卡洛法的电动汽车无序接入对配电网影响的分析 采用蒙特卡洛法对电动汽车的接入容量进行预测 再将预测的结果接入IEEE33节点配电网 通过对配电网的潮流计算 得到接入前后对电网电压和网损的影响 这个接入的数目也是可以灵活改变的 这段程序主要是对一个电力系统进行潮流计算和优化。下面我将对程序的功能、应用领域、工作内容、主要思路进行详细解释。 1. 功能和应用领域: 这段程序的功能是对一个电力系统进行潮流计算和优化。潮流计算是电力系统中的一种重要分析方法,用于计算系统中各节点的电压幅值和相位角,以及各支路的功率损耗。优化是指对系统进行调整,以减小功率损耗、提高电压稳定性等方面的指标。这种潮流计算和优化在电力系统规划、运行和管理中具有重要的应用价值。 2. 工作内容: 这段程序包含了多个函数和主程序,下面将逐个进行解释。 - 主程序: - 清除工作区和命令窗口中的变量和数据。 - 从文件中加载负荷数据,并进行单位转。 - 调用函数`car

    蓄电池与超级电容混合储能系统仿真模型:功率分配与波动抑制研究,基于Matlab Simulink平台实现,结合低通滤波器与智能SOC管理策略,蓄电池与超级电容混合储能并网matlab simulink

    蓄电池与超级电容混合储能系统仿真模型:功率分配与波动抑制研究,基于Matlab Simulink平台实现,结合低通滤波器与智能SOC管理策略,蓄电池与超级电容混合储能并网matlab simulink仿真模型,混合储能采用低通滤波器进行功率分配,可有效抑制功率波动,并对超级电容的soc进行能量管理,soc较高时多放电,较低时少放电,soc较低时状态与其相反。 ,核心关键词:混合储能; MATLAB Simulink仿真模型; 功率分配; 低通滤波器; 功率波动抑制; 能量管理; 超级电容SOC; 蓄电池。,"混合储能系统:Matlab Simulink仿真模型中低通滤波器与SOC能量管理优化"

    医疗废物信息化管理系统建设方案

    该文档是医疗废物信息化管理系统建设方案,围绕医疗废物管理展开。先介绍政策历程,因医疗废物危害大,国家出台多项政策推动信息化管理。接着阐述建设背景,指出当前医废管理存在纸质单据缺陷、流程不规范等问题。随后详细说明解决方案,涵盖系统应用、业务流程等。功能设计部分分别介绍卫健委局端、医院端、处置公司的功能,如数据展示、医废采集入库出库、人员管理等,旨在实现医废精准管理、全程追溯和闭环监管。

    syslinux-perl-4.05-15.el7.x64-86.rpm.tar.gz

    1、文件内容:syslinux-perl-4.05-15.el7.rpm以及相关依赖 2、文件形式:tar.gz压缩包 3、安装指令: #Step1、解压 tar -zxvf /mnt/data/output/syslinux-perl-4.05-15.el7.tar.gz #Step2、进入解压后的目录,执行安装 sudo rpm -ivh *.rpm 4、安装指导:私信博主,全程指导安装

    基于Matlab Simulink的单向Boost PFC与全桥LLC串联谐振开关电源仿真模型:2kw功率输出48V,谐振频率100kHz及输出电压闭环PFM控制,单向Boost PFC+全桥LLC

    基于Matlab Simulink的单向Boost PFC与全桥LLC串联谐振开关电源仿真模型:2kw功率输出48V,谐振频率100kHz及输出电压闭环PFM控制,单向Boost PFC+全桥LLC串联谐振开关电源Matlab simulink仿真模型 2kw功率,输出48V,谐振频率100k LLC使用输出电压闭环 PFM控制 ,核心关键词:单向Boost;PFC+全桥LLC;串联谐振开关电源;Matlab simulink仿真模型;2kw功率;输出48V;谐振频率100k;LLC输出电压闭环;PFM控制;,"Matlab Simulink仿真模型:2kW全桥LLC谐振电源的Boost-PFC研究"

    perl516-perl-File-Slurp-9999.19-10.el6.centos.alt.noarch.rpm

    perl516-perl-File-Slurp-9999.19-10.el6.centos.alt.noarch.rpm

    python项目实战之基于深度学习的电影评论情感分析源码+报告PDF

    python项目实战之基于深度学习的电影评论情感分析源码+报告PDF,个人大三设计项目、经导师指导并认可通过的高分设计项目,评审分99分,代码完整确保可以运行,小白也可以亲自搞定,主要针对计算机相关专业的正在做课程设计大作业的学生和需要项目实战练习的学习者,可作为课程设计、期末大作业。 python项目实战之基于深度学习的电影评论情感分析源码+报告PDFpython项目实战之基于深度学习的电影评论情感分析源码+报告PDFpython项目实战之基于深度学习的电影评论情感分析源码+报告PDFpython项目实战之基于深度学习的电影评论情感分析源码+报告PDFpython项目实战之基于深度学习的电影评论情感分析源码+报告PDFpython项目实战之基于深度学习的电影评论情感分析源码+报告PDFpython项目实战之基于深度学习的电影评论情感分析源码+报告PDFpython项目实战之基于深度学习的电影评论情感分析源码+报告PDFpython项目实战之基于深度学习的电影评论情感分析源码+报告PDFpython项目实战之基于深度学习的电影评论情感分析源码+报告PDFpython项目实战之基于深度

    weixin079-springboot智能校园点餐管理系统设计(论文+PPT).zip

    标题SpringBoot智能校园点餐管理系统设计AI更换标题第1章引言介绍智能校园点餐管理系统的背景、意义以及本文的设计目标和主要内容。1.1研究背景与意义分析校园点餐的现状及问题,阐述智能点餐系统的必要性和优势。1.2设计目标与内容明确系统的设计目标,概述论文的主要研究内容和结构安排。第2章系统需求分析对智能校园点餐管理系统的功能需求和非功能需求进行详细分析。2.1功能需求分析列举系统应具备的各项功能,如菜品浏览、点餐、支付等。2.2非功能需求分析分析系统的性能、安全性、可靠性等非功能需求。第3章系统设计根据需求分析,设计系统的整体架构、功能模块和数据库。3.1系统架构设计设计系统的整体架构,包括前后端分离、微服务架构等。3.2功能模块设计详细设计系统的各个功能模块,如用户管理、菜品管理、订单管理等。3.3数据库设计设计系统的数据库结构,包括表结构、数据字典等。第4章系统实现阐述系统的具体实现过程,包括开发环境、技术选型、关键代码实现等。4.1开发环境与技术选型介绍系统的开发环境,选择合适的技术栈和工具。4.2关键代码实现展示系统关键功能的代码实现,如用户登录、菜品展示、订单生成等。

    基于改进Fi-GNN模型的CTR预估方法.pdf

    基于改进Fi-GNN模型的CTR预估方法.pdf

    MAKINO系列机床操作与维修设定指南:PRO3操作、V55维护、报警表及作业规范手册,MAKINO 牧野 PRO3 维修设定操作 A55 PRO3操作说明书 日文.pdf A55卧加工作台旋转后加

    MAKINO系列机床操作与维修设定指南:PRO3操作、V55维护、报警表及作业规范手册,MAKINO 牧野 PRO3 维修设定操作 A55 PRO3操作说明书 日文.pdf A55卧加工作台旋转后加工原点计算.xlsx A61_SPECS.pdf MAKINO PRO3 V55-Operation-Guide 英文.pdf MAKINO S 系列PRO5 使用说明书PIC-Makino-S33-S56-0209.pdf MAKINO 培训课程Schulung_英文.pdf MAKINO-F3F5安装手册MANUAL 英文.pdf Makino-GF8主轴头取汲说明书.pdf MAKINO-PRO3-ProgManua英文l.pdf PIC-Makino-a61-0209.pdf V33 V55 -Series-Operation-485a-9911e英文.pdf V55-Maintenance-Guide-4v2b1563英文.pdf 牧野J5机床说明书J5_OPERATION_中文.pdf 牧野Professional5使用说明书摘要(a1系列 a51 a61 a71 a81 a8

    sgml-common-0.6.3-39.el7.x64-86.rpm.tar.gz

    1、文件内容:sgml-common-0.6.3-39.el7.rpm以及相关依赖 2、文件形式:tar.gz压缩包 3、安装指令: #Step1、解压 tar -zxvf /mnt/data/output/sgml-common-0.6.3-39.el7.tar.gz #Step2、进入解压后的目录,执行安装 sudo rpm -ivh *.rpm 4、安装指导:私信博主,全程指导安装

    基于ST-GCN的轻量级行为识别方法.pdf

    基于ST-GCN的轻量级行为识别方法.pdf

    开发板FPGA电机控制源码:底层Verilog与Nios II软件架构的协同工作,集成编码器模块算法与矢量调制等核心技术,开发板FPGA电机控制源码(verilog+nios2架构)FPGA电机控制源

    开发板FPGA电机控制源码:底层Verilog与Nios II软件架构的协同工作,集成编码器模块算法与矢量调制等核心技术,开发板FPGA电机控制源码(verilog+nios2架构)FPGA电机控制源码, 方案为单FPGA方案才用底层verilog + 应用层nios2的软件架构,很具有学习价值。 包括编码器模块算法, 坐标变算法, 矢量调制算法等等。 注:此代码不适合新手小白。 ,核心关键词:FPGA电机控制源码; 开发板; Verilog; Nios2架构; 编码器模块算法; 坐标变换算法; 矢量调制算法; 学习价值; 单FPGA方案; 底层Verilog + 应用层Nios2软件架构。,基于Verilog+Nios2架构的FPGA电机控制源码:单FPGA方案学习宝典

    产品经理-yyb.apk

    产品经理-yyb.apk

    基于PSO优化的SVM时间序列预测分析:详细代码注释,数据替换即用,PSO优化SVM做时间序列预测分析,代码内注释详细,直接替数据就可以使用 ,核心关键词:PSO优化; SVM; 时间序列预测分析;

    基于PSO优化的SVM时间序列预测分析:详细代码注释,数据替换即用,PSO优化SVM做时间序列预测分析,代码内注释详细,直接替数据就可以使用 ,核心关键词:PSO优化; SVM; 时间序列预测分析; 代码内注释详细; 直接替换数据即可使用。,PSO算法优化SVM时间序列预测分析工具——注释详尽的代码直接替换数据即可使用

    telepathy-glib-0.24.1-1.el7.x64-86.rpm.tar.gz

    1、文件内容:telepathy-glib-0.24.1-1.el7.rpm以及相关依赖 2、文件形式:tar.gz压缩包 3、安装指令: #Step1、解压 tar -zxvf /mnt/data/output/telepathy-glib-0.24.1-1.el7.tar.gz #Step2、进入解压后的目录,执行安装 sudo rpm -ivh *.rpm 4、安装指导:私信博主,全程指导安装

    perl516-perl-DB_File-1.826-19.el6.centos.alt.x86_64.rpm

    perl516-perl-DB_File-1.826-19.el6.centos.alt.x86_64.rpm

    OMRON CP1HPLC电子手轮控制伺服:详细教程-接线、设定与编程指南,OMRON CP1HPLC 电子手轮控制伺服,如何接线,设定,编写程序 PDF文档,我自己总结编写的教程,实际项目应用

    OMRON CP1HPLC电子手轮控制伺服:详细教程——接线、设定与编程指南,OMRON CP1HPLC 电子手轮控制伺服,如何接线,设定,编写程序。 PDF文档,我自己总结编写的教程,实际项目应用,私家珍藏。 ,核心关键词:OMRON CP1HPLC; 电子手轮控制伺服; 接线方法; 设定步骤; 编写程序; 教程; PDF文档; 实际项目应用; 私家珍藏。,OMRON CP1HPLC伺服控制教程:接线、设定与编程指南

Global site tag (gtag.js) - Google Analytics