HTTP——资源、URL、连接

      作为WEB开发人员,HTTP协议是必不可少的一道菜,HTTP协议的目的很明确,通过HTTP搬运游弋在网上的各种资源,达到共享,其核心思想只有四个字请求响应,此协议看上去很简洁,但他的诞生却给互联网带来了质的飞跃。

     资源共享,这其中就会牵扯到几个东西,什么是资源?去哪找资源?怎么共享?也就是经常提到的WHATWHEREHOW?放到HTTP中来,是这样几个概念:媒体类型、URLURIURN)、报文、连接等。

     资源

     构建资源节约型社会,这是咱们中国新时期提出的建设口号,何为资源?一切皆资源,这是从整个世界的角度出发,那从互联网角度看什么是资源呢?文本文件、Word文件、图片文件、电影文件等,都是属于WEB资源,也称为MIME类型。目前,浏览器和WEB服务器所支持的类型有数百个,可查看TOMCAT_HOME\conf\web.xml,在里面可以看到很多支持的MIME类型。

     URL

     解决了WHATWHERE呢?一般资源会在另外一台主机,或者WEB服务器上,互联网上散布着数以亿计的机器,如何定位?URIUniformResource Identifier)解决了这个问题,暂且就把URIURN都叫URL吧,比如要获取百度的一张图片:

http://www.baidu.com/images/hello.gif

                                                                 |                  |                         |

                               使用HTTP协议  进入百度       获取名为images/hello.gif的资源

     连接

     资源传输就要靠网络,离不开七层协议,HTTP属于应用层,是基于TCP/IP协议,也就是基于传输层和网络层,按照道理WEB开发人员是不需要了解TCP/IP具体细节,只需将需要的报文(后面讲)发送给传输层即可,TCP/IP会将要传输的信息准确无误的传送至目的地址。建立一个连接需要三次握手,这个我们先暂时忽略,下面是Web浏览器通过TCP连接于Web服务器交互的过程:


      上图中TCP为数据的传输提供了可靠的数据管道,精确些,应该叫可靠的比特传输管道,从TCP连接一端填入的字节会从另一端以原有的顺序、正确地传送出来,记住,这里传送的是二进制数据。

      TCP的数据时通过名为IP分组(或IP数据包)的小数据块来发送的,从数据流向来看就是“HTTPover TCP over IP”HTTPS就是在HTTPTCP之间插入了(TLSSSL)密码加密层。HTTP传送一条报文时,会以流的形式将报文数据的内容通过一条打开TCP连接按序传输,TCP收到数据流之后,会将数据流砍成类似于段的小数据块,并封装在IP分组中,通过因特网传输,这过程,HTTP程序员是看不到的。

     每个TCP段都是由IP分组承载,从一个IP地址发送到另一个IP地址。每个IP分组都包括:

     一个IP分组首部(20字节);

     一个TCP段首部(20字节);

     一个TCP数据块(0或多个字节)。

      IP首部包含了源和目的IP地址、长度和其他一些标记。TCP段首部包含了TCP端口号、TCP控制标记,以及用于数据排序和完整性检查的一些数字值,如下图:


    为保持TCP连接的正确运行,TCP是通过端口号来保持所有这些连接的正确运行,IP地址将你连接到正确的计算机,端口将你连接到正确的应用程序上去,TCP连接是通过4个值来识别的:

<IP地址、源端口号、目的IP地址、目的端口号>

    这4个值一起唯一定义了一条连接。说了这么多,其实和HTTP程序员最有关系的就是TCP套接字编程了,也就是JAVASOCKET,这是操作系统提供一些操纵其TCP连接的工具,这个套接字APIHTTP程序员隐藏了TCPIP的所有细节,这方面大家可能都代码实现过,就不用多说了。下节的报文和连接构成了HOW

播报频率和波形参数。我们可以使用百度语音合成API来实现语音合成,该API使用 JDBC 连接 Access 数据库,需要先下载 Microsoft 的 JDBC-ODBC 驱动,然后进行以下步骤: 1.可以将文本转换为语音,并以MP3格式进行下载。我们可以使用以下代码来实现语音合成 安装 Access 数据库并创建一个数据库文件(后缀为 .mdb 或 .accdb)。 2. 下载并安装: ```python import urllib.request import json def text_to_speech(text, filename): api_key = 'Your API Key Microsoft Access Database Engine。 3. 在系统的 ODBC 数据源管理器中添加一个数据源,选择 Microsoft Access Driver (*.mdb, *.accdb)。 4. 按照提示填写数据源名称和数据库文件路径等信息。 5. 在 Java 代码中使用 JDBC 连接 Access 数据库,示例代码如下: ```java import java.sql.*; public class AccessJDBC { public static void main(String[] args) { Connection conn = null; Statement stmt = null; ResultSet rs = null; try { // 加载 JDBC 驱动 Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); // 连接数据库 String url = "jdbc:odbc:myAccessDB"; String user = ""; String password = ""; conn = DriverManager.getConnection(url, user, password); // 执行 SQL 查询 String sql = "SELECT * FROM myTable"; stmt = conn.createStatement(); rs = stmt.executeQuery(sql); // 处理查询结果 while (rs.next()) { System.out.println(rs.getString("id") + ", " + rs.getString("name")); } } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } finally { // 关闭资源 try { if (rs != null) rs.close(); if (stmt != null) stmt.close(); if (conn != null) conn.close(); } catch (SQLException e) { e.printStackTrace(); } } } } ``` 其中,url 参数的值应该与 ODBC 数据源管理器中设置的数据源名称相同。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值