connection字段(connection_aborted,103)
HTTP Keep-Alive是什么?如何工作
HTTP协议是在TCP协议之上的,所以建立一个HTTP连接就需要一次三次握手的过程。但是HTTP有持续连接和非持久连接的区分,就是看HTTP请求首部里面的Connection字段,Connection:Keep-Alive表示持续连接,除非一方主动断开,客户端和服务器的网络连接是持续的,期间会有一个保持连接的数据信号,而且连接期间多个HTTP请求都是使用这一个网络连接,这样可以节省请求连接和断开连接的开销,但是维持连接也可能增加服务器的负担;如果是Connection:close,一个HTTP请求在获得HTTP响应后连接就会断开,在下一次HTTP请求时就会有另外一次HTTP连接,也就会再有一个三次握手的过程。
ADODB.Connection 怎么设置?
ADODB.Connection对象的Execute方法:
通常 应该这样用conn.execute(sql) ,conn也就是一个ADODB.Connection对象的实例。
ADO是Active Data Object的缩写,称为ActiveX数据对象。利用ADO对象,通过ODBC驱动程序或OLE DB连接字符串,可实现对任意数据库的存取和访问。
OLE DB是微软用来替代ODBC的一种数据库访问技术。是一种对关系型数据库和非关系型数据库均有效的一种数据库访问技术。
ADO提供了7个独立的对象,利用这些对象,可实现对数据库的存取和访问:
·Connection 连接对象
·Command 命令对象。 利用命令对象可执行一个SQL存储过程或有参数的查询
·Parameter 参数对象
·Recordset 记录集对象,代表从数据表中通过查询所获得的一组记录。通过该对象的方法和属性,可实现对记录的存取和操作。
·Field 字段对象,代表记录集中的一个字段。Fields为字段集合,代表一条记录的全部字段
·Property 属性对象
·Error 错误对象
Connection,Command和Recordset是整个ADO的核心,通过Connection对象与一个数据库建立连接,然后利用Command对象执行查询,从而返回查询结果,并将结果(记录集)存入Recordset对象中,利用服务器端脚本,通过访问Recordset对象,便可获得查询到的记录内容。
另外,利用Connection对象的Execute方法和Recordset对象的Open方法,也可执行一个查询,返回一个记录集。
ODBC数据源的用户数据源,系统数据源和文件数据源
原名:Data Source Name
中文名:数据源名称
DSN为ODBC定义了一个确定的数据库和必须用到的ODBC驱动程序。每个ODBC驱动程序定义为该驱动程序支持的一个数据库创建DSN需要的信息。就是说安装ODBC驱动程序以及创建一个数据库之后,必须创建一个DSN。
一个DSN可以定义为以下3种类型中的任意一种:
★用户数据源:这个数据源对于创建它的计算机来说是局部的,并且只能被创建它的用户使用。
★系统数据源:这个数据源属于创建它的计算机并且是属于这台计算机而不是创建它的用户。任何用户只要拥有适当的权限都可以访问这个数据源。
★文件数据源:这个数据源对底层的数据库文件来说是确定的。换句话说,这个数据源可以被任何安装了合适的驱动程序的用户使用。
用户和系统DSN存储在WindowsNT注册表中,系统DSN可被登录的所有用户访问和使用,用户DSN只能提供特定的用户访问和使用。 文件DSN是存储在一个扩展名为.dsn的文本文件中,可供多个用户访问和使用,并可实现复制,通用性强,一般采用此方式。
ADO连接对象
连接对象在使用前必须先创建该对象的实例:
Set 实例名=Server.CreateObject("ADODB.Connection")
连接对象的方法:
·Open方法
连接对象.Open 数据源名 | 连接字符串
带参数调用Open方法时,其参数实质是传递给连接对象的ConnectionString属性的。因此,可事先设置ConnectionString属性的值,然后再调用不带参数的Open方法
·Close方法
连接对象.Close释放:Set conn=Nothing
·Execute方法
该方法用于执行SQL语句。根据SQL语句执行后是否返回记录集,该方法的使用格式分为以下两种:
1.执行SQL查询语句时,将返回查询得到的记录集。用法为:
Set 对象变量名=连接对象.Execute("SQL 查询语言")
Execute方法调用后,会自动创建记录集对象,并将查询结果存储在该记录对象中,通过Set方法,将记录集赋给指定的对象保存,以后对象变量就代表了该记录集对象。
2.执行SQL的操作性语言时,没有记录集的返回。此时用法为:
连接对象.Execute "SQL 操作性语句" [, RecordAffected][, Option]
·RecordAffected 为可选项,此出可放置一个变量,SQL语句执行后,所生效的记录数会自动保存到该变量中。通过访问该变量,就可知道SQL语句队多少条记录进行了操作。
·Option 可选项,该参数的取值通常为adCMDText,它用于告诉ADO,应该将Execute方法之后的第一个字符解释为命令文本。通过指定该参数,可使执行更高效。
·BeginTrans、RollbackTrans、CommitTrans方法
这三个方法是连接对象提供的用于事务处理的方法。BeginTrans用于开始一个事物;RollbackTrans用于回滚事务;CommitTrans用于提交所有的事务处理结果,即确认事务的处理。
事务处理可以将一组操作视为一个整体,只有全部语句都成功执行后,事务处理才算成功;若其中有一个语句执行失败,则整个处理就算失败,并恢复到处里前的状态。
BeginTrans和CommitTrans用于标记事务的开始和结束,在这两个之间的语句,就是作为事务处理的语句。判断事务处理是否成功,可通过连接对象的Error集合来实现,若Error集合的成员个数不为0,则说明有错误发生,事务处理失败。Error集合中的每一个Error对象,代表一个错误信息。
另外,利用SQL本身所提供的事务处理语句,通过编写存储过程,然后利用ADO命令对象的相关方法,通过调用执行存储过程,也可实现事务。
连接对象的常用属性:
属性名
CommandTimeOut 设置Execute方法的最长执行时间,默认为30秒。设置为0,无限制。
ConnectionTimeOut设置Open方法的最长执行时间,默认为15秒。设置为0,无限制。
ConnectionString 设置连接对象的链接信息,如DSN、提供者、用户名、口令等。
纪录集对象
java:实例化了URLConnection无法调用connected 字段,为什么???问题很愚蠢,求解答
connect()方法:打开到此 URL 引用的资源的通信链接(如果尚未建立这样的连接)。
如果在已打开连接(此时 connected 字段的值为 true)的情况下调用 connect 方法,则忽略该调用。
HttpURLConnection 用法详解
一.继承关系
1.? java.lang.Object
? ? ? ? ? --java.net.URLConnection
? ? ? ? ? ? ? --java.net.HttpURLConnection
二.URLConnection类
? 1.URLConnection代表应用程序和 URL 之间的通信链接。
? 2.作用:代表应用程序和 URL 之间的通信链接;
? 3. 创建一个到 URL 的连接需要几个步骤:
? (1)通过在 URL 上调用 openConnection 方法创建连接对象;
? (2)处理设置参数和一般请求属性;
? (3)使用 connect 方法建立到远程对象的实际连接;
? (4)远程对象变为可用。远程对象的头字段和内容变为可访问;
三.HttpURLConnection
? 1 每个 HttpURLConnection 实例都可用于生成单个请求,但是其他实例可以透明地共享连接到 HTTP 服务器的基础网络。请求后在 HttpURLConnection 的 InputStream 或 OutputStream 上调用 close() 方法可以释放与此实例关联的网络资源,但对共享的持久连接没有任何影响。如果在调用 disconnect() 时持久连接空闲,则可能关闭基础套接字;
? 2. 对于Connection的对象的设置很重要,是有顺序的;
? ? connection的设置(很多set函数)必须在函数执行之前完成;Outputstream的写操作必须在Inputstream读操作之前。
四.用法
? ? 1.创建连接:
? ? URL url =newURL("");
? ? HttpURLConnection conn = ( HttpURLConnection) url.openConnection();
? 2.设置Connection参数:
? ? conn.setRequestMethod( "POST");// 提交模式? ? conn.setRequestProperty( "Content-Type","application/json;charset=UTF-8");//设置请求属性? ? conn.setConnectTimeout(100000);//连接超时 单位毫秒? ? conn.setReadTimeout(100000);//读取超时 单位毫秒? ? conn.setDoOutput( true);//是否输入参数? ? conn.setDoInput( true);//是否读取参数3.连接:
? ? conn.connect();
? 4.获取写数据流:
? ? OutputStream outStrm = httpUrlConnection.getOutputStream();
? 5.写数据:
? ? outStrm.write(bytes); // 输入参数? ? outStrm. flush();
? ? outStrm.close();
? 6.读数据:
? ? InputStream in= conn.getInputStream();
? ? intcount=conn.getContentLength();//获取远程资源长度byte[] buffer =newbyte[count];
? ? ByteArrayOutputStream baos =new ByteArrayOutputStream();
? ? for(intlen =0; (len =in.read(buffer)) 0;) {
? ? ? ? ? baos.write(buffer, 0, len);
? ? }
? ? String returnValue =newString(baos.toByteArray(),"utf-8" );
? ? reg= JSON. parseObject(returnValue, ReturnMessage.class );
? ? baos.flush();
? ? baos.close();
? ? in.close();
? ? conn.disconnect();
HttpURLConnection 用法详解 - 皓月天边 - 博客园
Android面试笔记——HTTP/HTTPS
HTTP和HTTPS是面试常问的问题,内容比较多而且复杂,HTTPS里面的细节很多,本文只是把主要的东西写出来,想要弄懂HTTPS还是要多看几篇博文,自己动手走一遍把各个攻击的case搞明白。
HTTP 是超?本传输协议,也就是HyperText Transfer Protocol。
Host 字段 :客户端发送请求时,?来指定服务器的域名。 Host:
Content-Length 字段 :服务器在返回数据时,会有 Content-Length 字段,表明本次回应的数据长度。 Content-Length: 1000
Connection 字段 :Connection 字段最常用于客户端要求服务器使? TCP 持久连接,以便其他请求复?。 HTTP/1.1 版本的默认连接都是持久连接,但为了兼容?版本的 HTTP,需要指定 Connection ?部字段的值为Keep-Alive 。
Content-Type 字段 :Content-Type 字段?于服务器回应时,告诉客户端,本次数据是什么格式 。 Content-Type: text/html; charset=utf-8
Content-Encoding 字段 :Content-Encoding 字段说明数据的压缩?法。表示服务器返回的数据使用了什么压缩格式 。客户端在请求时,? Accept-Encoding 字段说明自己可以接受哪些压缩?法。 Accept-Encoding: gzip, deflate
下图为访问百度的返回字段
HTTP/2 协议是基于 HTTPS 的,所以 HTTP/2 的安全性也是有保障的。
这都是基于 TCP 传输层的问题,所以 HTTP/3 把 HTTP 下层的 TCP 协议改成了 UDP 。
UDP 发生是不管顺序,也不管丢包的,所以不会出现 HTTP/1.1 的队头阻塞 和 HTTP/2 的?个丢包全部重传问题。
UDP 是不可靠传输的,但基于 UDP 的 QUIC 协议 可以实现类似 TCP 的可靠性传输。
HTTPS 采?的是 对称加密和?对称加密结合 的「混合加密」?式:
采?「混合加密」的?式的原因:
摘要算法?来实现 完整性 ,能够为数据?成独???的「指纹」,?于校验数据的完整性,解决了篡改的?险。
客户端在发送明?之前会通过摘要算法算出明文的「指纹」,发送的时候把「指纹 + 明文」?同加密成密文后,发送给服务器,服务器解密后,用相同的摘要算法算出发送过来的明文,通过?较客户端携带的「指纹」和当前算出的「指纹」做?较,若「指纹」相同,说明数据是完整的。
客户端先向服务器端索要公钥,然后?公钥加密信息,服务器收到密文后,???的私钥解密。这就存在些问题,如何保证公钥不被篡改和信任度?
所以这?就需要借助第三?权威机构 CA (数字证书认证机构),将服务器公钥放在数字证书(由数字证书认证机构颁发)中,只要证书是可信的,公钥就是可信的。
通过数字证书的?式保证服务器公钥的身份,解决冒充的?险 。
证书签名和验证过程 :
两种情况 :