JavaScript高级程序设计-网络请求与远程资源

网络请求与远程资源

XMLHttpRequest 对象

概述

const xhr = new XMLHttpRequest()

使用步骤:

    1. xhr.open(method,url,true)
    1. xhr.send(data)
    1. xhr.onreadystatechange

常用的 xhr 属性:

  • xhr.status: 状态码,成功 200
  • xhr.statusText: 状态描述,“OK”
  • xhr.responseText: 响应体文本
  • xhr.readyState: 值为 4 表示已经获取到响应
let xhr = new XMLHttpRequest();

const method = "get";
const url = "http://localhost:3000/";

// 1. 定义请求方法,请求url,是否是异步
xhr.open(method, url, true);
// 2. 真正发送请求,send接收请求数据
xhr.send(null);

// xhr的readystatechange事件
// xhr.readyState:4表明已获取到响应
// xhr.status 表示响应的状态码,200表示成功
// xhr.statusText 表示响应状态的描述,如果是200,则对应是"OK"
// xhr.responseText 表示作为响应体返回的文本
xhr.onreadystatechange = function () {
  if (xhr.readyState === 4) {
    if ((xhr.status >= 200 && xhr.status < 300) || xhr.status === 304) {
      console.log("请求成功,响应数据:>>", xhr.responseText);
    }
  }
};

HTTP 头部

默认 xhr 会发送以下头部:

  • Accept:浏览器可以处理的内容类型,如:*/*
  • Accept-Charset:浏览器可以显示的字符集
  • Accept-Encoding:浏览器可以显示的字符集,如:gzip, deflate, br
  • Accept-Language:浏览器使用的语言,如:zh-CN,zh;q=0.9,en-GB;q=0.8,en-US;q=0.7,en;q=0.6
  • Connection:浏览器与服务器的连接类型,keep-alive
  • Cookie:页面中设置的 Cookie
  • Host:发送请求的页面所在的域,localhost:3000
  • Referer:发送求情的页面的 URI,拼错了(将错就错,正确是 Referrer),
  • User-Agent:浏览器的用户代理字符串。

设置自定义 HTTP 请求头
在 xhr.open()和 xhr.send()之间可以设置自定义请求头

xhr.setRequestHeader(headerName,value)

获取响应头

  • xhr.getResponseHeader(‘headername’),获取指定响应头
  • xhr.getAllResponseHeaders(),获取所有响应头,返回字符串

GET 请求

get 请求添加的查询字符串,每个 key 和 value 都必须经过 encodeURIComponent()编码,以&分隔

xhr.open("get", "example.php?name1=value1&name2=value2", true);

POST 请求

POST 请求主要是用于保存数据,因此必须设置 Content-Type,POST 请求的请求体可以包含很多种数据格式,

Content-Type 的值:

  • application/x-www-form-urlencoded,请求体数据就是提交表单时的数据格式,类似 name1=value1&name2=value2 这种格式的字符串
  • application/json,json 格式
// 1. 定义请求方法,请求url,是否是异步
xhr.open("post", url, true);
// post请求,必须设置请求体数据类型
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
// 2. 真正发送请求,send接收请求数据
xhr.send("name=dragon&age=18");

XMLHttpRequest level2

FormData 类型

FormData 类型便于表单序列化,也便于创建与表单类似格式的数据然后通过 XHR 发送,
不再需要给 XHR 对象显式设置任何请求头部了。XHR 对象能够识别作为 FormData 实例传入的数据类型并自动配置相应的头部。

const data = new FormData();

data.append("name", "dragon");
data.append("age", 10);

// 1. 定义请求方法,请求url,是否是异步
xhr.open("post", url, true);

// 2. 真正发送请求,send接收请求数据,可以是FormData
xhr.send(data);

超时

设置超时,触发超时事件

xhr.timeout = 1000; // 设置1 秒超时
xhr.ontimeout = function () {
  alert("Request did not return in a second.");
};

进度事件

  • loadstart,接收到响应第一个字节时
  • progress,接收期间
  • error,错误
  • abort,调用 xhr.abort()
  • load,成功接受完响应时
  • loadend,通信完成,且在 error,abort 或 load 之后触发
    每次请求都会首先触发 loadstart 事件,之后是一个或多个 progress 事件,接着是 error、abort=或 load 中的一个,最后以 loadend 事件结束。

跨域资源共享

跨源资源共享(CORS,Cross-Origin Resource Sharing)定义了浏览器与服务器如何实现跨源通信。CORS 背后的基本思路就是使用自定义的 HTTP 头部允许浏览器和服务器相互了解,以确实请求或响应应该成功还是失败。

预检请求

简单请求:

GET,简单的 POST,HEAD

简单的 post 请求指 content-type 为以下这些值的

  • text/plain
  • multipart/form-data
  • application/x-www-form-urlencoded

跨域技术

不依赖 CORS,也可以通过能够执行跨域请求的 DOM 特性来实现 AJAX

图片探测

图片探测是利用标签实现跨域通信的最早的一种技术.设置 onload 和 onerror 事件.
图片探测频繁用于跟踪用户在页面上的点击操作或动态显示广告。当然,图片探测的缺点是只能发
送 GET 请求和无法获取服务器响应的内容。这也是只能利用图片探测实现浏览器与服务器单向通信的
原因。

let img = new Image();

img.onload = function () {
  alert("done");
};

img.onerror = function () {
  alert("done");
};
img.src = "http://localhost:3000/";

JSONP

JSONP 调用是通过动态创建 script 元素并为 src 属性指定跨域 URL 实现的。实际上就是通过 script 拉取服务端代码.缺点是不安全,且无法确定是否请求失败,很少使用了.

JSONP 是“JSON with padding”的简写,是在 Web 服务上流行的一种 JSON 变体。JSONP 看起来 跟 JSON 一样,只是会被包在一个函数调用里.

JSONP 格式包含两个部分:回调和数据.

callback({ “name”: “Nicholas” });

客户端代码:

// 客户端定义一个函数,接收响应数据
function handleJSONP(res) {
  console.log(res);
}

const script = document.createElement("script");

// 客户端与后端约定以callback的值确定调用的函数名称
script.src = "http://localhost:3000?callback=handleJSONP";

document.body.insertBefore(script, document.body.firstChild);

服务端代码:

router.get("/", async (ctx) => {
  // 通过callback获取回调函数名称
  const cbName = ctx.query.callback;
  const data = "hello world";
  //返回格式 callback(data)
  ctx.body = `${cbName}(${JSON.stringify(data)})`;
});

Fetch API

能替代 XHR 对象,并且能在 Web Woker 中使用,必须是异步

基本用法

fetch()方法暴露在全局作用域,包括主页面执行线程,模块和工作线程

1. 发送请求
fetch(url),默认是 get 请求,返回一个 promise,该 promise 会 resovle 一个 response 对象,可通过它取得响应的资源

fetch(url).then((response) => {
  console.log(response); //response.status 200 状态码,response.body是一个ReadableStream,响应内容
  // 调用response.text方法,返回一个promise,resolve响应的数据
  response.text().then((data) => {
    console.log(data); //
  });
});

2. 读取响应
response 对象通过以下方法获取响应数据,均返回 resolve 数据的 Promise

  • response.text(),返回文本
  • response.blob(),返回不确定格式的二进制数据
  • response.arrayBuffer(),返回二进制数据
  • response.json(),返回 json
fetch(url).then((response) => {
  response.text().then((data) => {
    console.log(data);
  });
});

3. 处理状态码和请求失败
fetch API 可以通过 Response 对象的stauts(状态码)和statusText(状态文本),检查响应状态

响应状态
以下的状态 fetch()返回的 promise 还是会被 resolve

属性成功资源不存在服务器错误
response.stauts200404500
response.statusTextOKNot FoundInternal Server Error
response.oktruefalsefalse

重定向时的 response
会发生两次网络请求,最后 response.stauts 是 200,且 response.redirected 是 true

fetch()返回的 promise 被 reject 的情况
跨域,无网络链接,HTTPS 错配或者超时等情况导致 promise 被 reject 拒绝

fetch(url)
  .then((response) => {
    console.log(response);
  })
  .catch((e) => {
    // 捕获reject错误
    console.log(e);
  });

4. 自定义选项
fetch(url,init)

init 对象的键值如下:

body请求体,Blob,FormData,String,BufferSource,URLSearchParams,ReadableStream
method请求方法,GET,POST,PUT,DELELTE,OPTION,HEAD,默认是 GET
headers请求头,值是 Header 对象或者常规的对象,默认是不含键值对的 Header 对象,但浏览器仍然会发送一些头部
cache用于控制浏览器与 HTTP 缓存的交互,默认是 Default
credentials用于指定外发请求时如何包含 cookie,默认是 same-origin,同源时才发送 cookie
keepalive用于指示浏览器允许请求存在时间超出页面生命周期,默认是 false
mode请求模式,用于指示跨域请求的响应是否有效,以及客户端可以读取多少响应,默认是 cors,允许跨域
signal值是 AbortSignal 的实例,用于支持中断请求

常见 Fetch 请求模式

1. 发送 JSON 数据
JSON.stringify,POST,application/json

const headers = new Headers({
  "Content-Type": "application/json", // post请求,必须设置该Content-Type
});

fetch(url, {
  method: "POST", //指定请求HTTP方法
  body: JSON.stringify({ foo: "bar" }), // 在浏览器中的payload,是Request Payload类型
  headers,
}).then((response) => {
  console.log(response);
});

2. 在请求体中发送参数
可以发送任意参数,application/x-www-form-urlencoded,name1=value1&name2=value2

const headers = new Headers({
  "Content-Type": "application/x-www-form-urlencoded", // post请求,必须设置该Content-Type
});

fetch(url, {
  method: "POST",
  body: "foo=bar&baz=qux", //在浏览器的开发者工具中,看到的是FormData类型,因为是模拟表单提交
  headers,
}).then((response) => {
  console.log(response);
  response.json().then(console.log); //{foo: 'bar', baz: 'qux'}
});

3. 发送文件

const url = "/post";

const data = new FormData();

data.append("image", File对象1);
data.append("image", File对象2);

fetch(url, {
  method: "POST",
  body: data, // 如果是FormData,默认自动会设置Content-Type,
}).then((response) => {
  console.log(response);
  response.json().then(console.log); //{foo: 'bar', baz: 'qux'}
});

4. 加载 Blob 文件

const url = "/img.jpg";

fetch(url).then((response) => {
  console.log(response);
  response.blob().then((blob) => {
    // 根据blob创建objectURL
    const url = window.URL.createObjectURL(blob);

    const img = document.createElement("img");

    img.src = url;

    document.body.appendChild(img);
  });
});

5. 发送跨源请求
从不同的源请求资源,响应要包含 CORS 头部才能保证浏览器收到响应.

6. 中断请求
Fetch API 支持通过 AbortController/AbortSignal 对中断请求。调用 AbortController.
abort()会中断所有网络传输,特别适合希望停止传输大型负载的情况。中断进行中的 fetch()请求会
导致包含错误的拒绝。

在 fetch()第二个参数设置 signal,调用 AbortController.abort()

const url = "/img.jpg";

const abortController = new AbortController();

//fetch()第二个参数设置 signal为abortController.signal
fetch(url, { signal: abortController.signal }).catch((e) => {
  console.log("中断了请求"); //中断了请求
});

// 0ms后中断请求
setTimeout(() => {
  abortController.abort();
}, 0);

Headers 对象

Headers 对象存在 request,response 实例上,也可以通过 new Headers()创建

1.Headers 与 Map 的相似之处
和 Map 类型相似,具有 get(),set(),has(),delete()等实例方法,可以被迭代,有 keys(),values(),entries()接口

2. Headers 独有特性
可以通过键值对形式的对象初始化,append 同个键,会以","的分隔符拼接多个值

3. 头部护卫
某些 HTTP 头部不可以被客户端修改

Request 对象

1. 创建 Request 对象

new Request(url),new Request(url,init)

2. 克隆 Request 对象
前提: bodyUsed属性不为true,否则无论哪种方式是克隆不成功的

  • 通过new Request(request)
  • 通过request.clone()

request对象如果被new Request()或者fetch()使用过,那么就reqeust.bodyUsed就变为true,不能再被fetch()使用

let r1 = new Request("http://localhost:3000", {
  method: "POST",
  body: JSON.stringify({ name: "dragon" }),
});

let r2 = new Request(r1);

console.log(r1.bodyUsed); // true,由于使用了new Request(r1),r1.bodyUsed就会被标记为ture,
console.log(r2.bodyUsed); // false

fetch(r2).then((response) => {
  console.log(r2.bodyUsed); //true
});

建议通过clone方法,只有request.bodyUsed为false的情况下才能克隆成功,否则报错

let r = new Request("http://localhost:3000", {
  method: "POST",
  body: JSON.stringify({ name: "dragon" }),
});

r.clone(); //不会报错

r.text(); // 调用text(),bodyUsed变为true,再次克隆则会报错

r.clone(); // 报错

new Request(r1); // 报错
  1. 在fetch()中使用request对象

fetch(request,init),也可以传Request对象,并且再传init对象覆盖原配置.有请求体的Request只能在fetch()中使用一次,调用后request的bodyUsed变为true,如果想基于同一个请求体发送多次请求,在请求前先clone以下

let r = new Request("http://localhost:3000", {
  method: "POST",
  body: "foobar",
});

console.log(r.bodyUsed); //false
fetch(r);
console.log(r.bodyUsed); //true

fetch(r); //报错,TypeError: Failed to execute 'fetch' on 'Window': Cannot construct a Request with a Request object that has already been used.


// 先克隆再请求
// 3 个都会成功
fetch(r.clone());
fetch(r.clone());
fetch(r);

Response 对象

  1. 创建Response对象
    new Response(body?,init?)
let r = new Response();

let r2 = new Response(JSON.stringify({ foo: "bar" }), {
  status: 200,
  statusText: "OK",
});
console.log(r2);
//body: (...)
//bodyUsed: true
//headers: Headers {}
//ok: true
//redirected: false
//status: 200
//statusText: "OK"
//type: "default"
//url: ""
r2.text().then(console.log);

大多数情况下,都是通过fetch()返回的promise来resolve一个response对象,另外还有两个静态方法Response.redirect(),Response.error()

2. 读取响应状态
Response 对象包含一组只读属性,描述了请求完成后的状态.

属性
headers响应包含的Headers 对象
ok布尔值,表示HTTP 状态码的含义。200~299 的状态码返回true,其他状态码返回false
redirected布尔值,表示响应是否至少经过一次重定向
status整数,表示响应的HTTP 状态码
statusText字符串,包含对HTTP 状态码的正式描述.这个字段可能是空字符串
typebasic:表示标准的同源响应 cors:表示标准的跨源响应
url包含响应URL 的字符串。对于重定向响应,这是最终的URL

3. 克隆Response对象
克隆Response 对象的主要方式是使用clone()方法,这个方法会创建一个一模一样的副本,不会覆盖任何值.

let r1 = new Response("foo bar");

let r2 = r1.clone();

r1.text();

r1.clone(); // 报错,响应体已使用,bodyUsed为true的响应对象不能再次克隆

r1.text(); // 报错了, 带有响应体的响应对象只能读取一次,再次读取会报错

//想多次读取,则先克隆
r2.clone().arrayBuffer().then(console.log);
r2.clone().text().then(console.log);
r2.clone().blob().then(console.log);

Request,Response 及 Body 混入

Request 和Response 都使用了Fetch API 的Body 混入,提供了只读的body 属性(实现为ReadableStream)、只读的bodyUsed 布尔值(表示body 流是否已读)和一组方法

  • text()
  • json()
  • formData()
  • arrayBuffer()
  • blob()
response.text().then(text=>{})
response.json().then(json=>{})
response.formData().then(formData=>{})
response.arrayBuffer().then(arrayBuffer=>{})
response.blob().then(blob=>{})

Beacon API

普通的XHR对象或者fecth请求会在页面unload卸载后就中断,而navigator.sendBeacon()就不会,这个简单的方法接收一个URL 和一个数据有效载荷参数,并会发送一个POST请求。可选的数据有效载荷参数有ArrayBufferView、Blob、DOMString、FormData 实例。如果请求成功进入了最终要发送的任务队列,则这个方法返回true,否则返回false.

特点:

  • 在页面的生命周期的任何时候都能使用
  • 浏览器关闭也能使用
  • 会携带cookie
  • 状态码,超时或其他原因造成失败是不透明的,不能通过编程方式处理.
let isSended = navigator.sendBeacon(
  "http://localhost:3000",
  JSON.stringify({ foo: "bar" })
);

WebSocket

Web Socket(套接字)的目标是通过一个长时连接实现与服务器全双工、双向的通
API
let ws = new WebSocket(“ws://localhost:3000”);

  • ws.readyState,连接状态
  • ws.close(),关闭连接
  • ws.onmessage,监听消息
  • ws.onopen,在连接成功建立时触发
  • ws.onclose,在连接关闭时触发
  • ws.onerror在发生错误时触发。连接无法存续
  • ws.send(),参数可以是字符串,ArrayBuffer,或Blob
// 创建WebSocket实例,参数ws开头的url
let ws = new WebSocket("ws://localhost:3000");

ws.onmessage = function (e) {
  // 服务器推送的数据,data可能是blob或arrayBuffer
  console.log(e.data);
};

ws.onopen = function () {
  ws.send("我是客户端的socket消息");
  console.log(ws.readyState);
};


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Applet钢琴模拟程序java源码 2个目标文件,提供基本的音乐编辑功能。编辑音乐软件的朋友,这款实例会对你有所帮助。 Calendar万年历 1个目标文件 EJB 模拟银行ATM流程及操作源代码 6个目标文件,EJB来模拟银行ATM机的流程及操作:获取系统属性,初始化JNDI,取得Home对象的引用,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用完毕,从内存中清除,从账户中取出amt,如果amt>账户余额抛出异常,一个实体Bean可以表示不同的数据实例,我们应该通过主键来判断删除哪个数据实例…… ejbCreate函数用于初始化一个EJB实例 5个目标文件,演示Address EJB的实现,创建一个EJB测试客户端,得到名字上下文,查询jndi名,通过强制转型得到Home接口,getInitialContext()函数返回一个经过初始化的上下文,用client的getHome()函数调用Home接口函数得到远程接口的引用,用远程接口的引用访问EJB。 EJB中JNDI的使用源码例子 1个目标文件,JNDI的使用例子,有源代码,可以下载参考,JNDI的使用,初始化Context,它是连接JNDI树的起始点,查找你要的对象,打印找到的对象,关闭Context…… ftp文件传输 2个目标文件,FTP的目标是:(1)提高文件的共享性(计算机程序和/或数据),(2)鼓励间接地(通过程序)使用远程计算机,(3)保护用户因主机之间的文件存储系统导致的变化,(4)为了可靠和高效地传输,虽然用户可以在终端上直接地使用它,但是它的主要作用是供程序使用的。本规范尝试满足大型主机、微型主机、个人工作站、和TACs 的不同需求。例如,容易实现协议的设计。 Java EJB中有、无状态SessionBean的两个例子 两个例子,无状态SessionBean可会话Bean必须实现SessionBean,获取系统属性,初始化JNDI,取得Home对象的引用,创建EJB对象,计算利息等;在有状态SessionBean中,用累加器,以对话状态存储起来,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用完毕,从内存中清除…… Java Socket 聊天通信演示代码 2个目标文件,一个服务器,一个客户端。 Java Telnet客户端实例源码 一个目标文件,演示Socket的使用。 Java 组播组中发送和接受数据实例 3个目标文件。 Java读写文本文件的示例代码 1个目标文件。 java俄罗斯方块 一个目标文件。 Java非对称加密源码实例 1个目标文件 摘要:Java源码,算法相关,非对称加密   Java非对称加密源程序代码实例,本例中使用RSA加密技术,定义加密算法可用 DES,DESede,Blowfish等。   设定字符串为“张三,你好,我是李四”   产生张三的密钥对(keyPairZhang)   张三生成公钥(publicKeyZhang)并发送给李四,这里发送的是公钥的数组字节   通过网络或磁盘等方式,把公钥编码传送给李四,李四接收到张三编码后的公钥,将其解码,李四用张三的公钥加密信息,并发送给李四,张三用自己的私钥解密从李四处收到的信息…… Java利用DES私钥对称加密代码实例 同上 java聊天室 2个目标文件,简单。 java模拟掷骰子2个 1个目标文件,输出演示。 java凭图游戏 一个目标文件,简单。 java求一个整数的因子 如题。 Java生成密钥的实例 1个目标文件 摘要:Java源码,算法相关,密钥   Java生成密钥、保存密钥的实例源码,通过本源码可以了解到Java如何产生单钥加密的密钥(myKey)、产生双钥的密钥对(keyPair)、如何保存公钥的字节数组、保存私钥到文件privateKey.dat、如何用Java对象序列化保存私钥,通常应对私钥加密后再保存、如何从文件中得到公钥编码的字节数组、如何从字节数组解码公钥。 Java数据压缩与传输实例 1个目标文件 摘要:Java源码,文件操作,数据压缩,文件传输   Java数据压缩与传输实例,可以学习一下实例化套按字、得到文件输入流、压缩输入流、文件输出流、实例化缓冲区、写入数据到文件、关闭输入流、关闭套接字关闭输出流、输出错误信息等Java编程小技巧。 Java数组倒置 简单 Java图片加水印,支持旋转和透明度设置 摘要:Java源码,文件操作,图片水印   util实现Java图片水印添加功能,有添加图片水印和文字水印,可以设置水印位置,透明度、设置对线段锯齿状边缘处理、水印图片的路径,水印一般格式是gif,png,这种图片可以设置透明度、水印旋转等,可以参考代码加以改进做成小工具。 Java右键弹出菜单源码 简单 Java圆形按钮实例代码,含注释 两个目标文件,自绘button。 Java圆形电子时钟源代码 1个目标文件 内容索引:JAVA源码,系统相关,电子钟   用JAVA编写的指针式圆形电子钟,效果图如下所示,其实代码很简单,希望对你有帮助。 Message-Driven Bean EJB实例源代码 2个目标文件 摘要:Java源码,初学实例,EJB实例   Message-Driven Bean EJB实例源代码,演示一个接收购物订单的消息驱动Bean,处理这个订单同时通过e-mail的形式   //给客户发一个感谢消息,消息驱动Bean必须实现两个接口MessageDrivenBean和MessageListener   在对象创建的过程中将被容器调用,onMessage函数方法接收消息参数,将其强制转型为合适的消息类型,同时打印出消息的内容。同时一个mail note将被发送给消息发送者,发送一个e-mail通知给由recipient参数确定的e-mail账号,查询mail 服务器的会话……   还包括消息客户端程序,通过连接创建会话。创建发送者和映射消息。发送消息,同时对文本进行少量修改,发送end-of-messages消息,最后关闭连接。 Tcp服务端与客户端的JAVA实例源代码 2个目标文件 摘要:Java源码,文件操作,TCP,服务器   Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 3个目标文件 第一步:运行ServerData.java 启动服务器,然后服务器处于等待状态 第二步:运行LoginData.java 启动(客户端)登陆界面 输入用户名 ip为本机localhost 第三步:在登陆后的界面文本框输入文本,然后发送 可以同时启动多个客户端 实现群聊。 浮动的广告 嵌套在html中 各种EJB之间的调用示例 7个目标文件 摘要:Java源码,初学实例,EJB调用实例   各种EJB之间的调用源码示例,用远程接口的引用访问EJB、函数将被FirstEJB调用,同时它将调用secondEJB 基于JAVA的UDP服务器模型源代码 2个目标文件 摘要:Java源码,网络相关,UDP   基于JAVA的UDP服务器模型源代码,内含UDP服务器端模型和UDP客户端模型两个小程序,向JAVA初学者演示UDP C/S结构的原理。 简单聊天软件CS模式 2个目标文件 一个简单的CS模式的聊天软件,用socket实现,比较简单。 凯撒加密解密程序 1个目标文件 1、程序结构化,用函数分别实现 2、对文件的加密,解密输出到文件 利用随机函数抽取幸运数字 简单 EJB的真实世界模型(源代码) 15个目标文件 摘要:Java源码,初学实例,基于EJB的真实世界模型   基于EJB的真实世界模型,附源代码,部分功能需JSP配合完成。 J2ME优化压缩PNG文件 4个目标文件 内容索引:JAVA源码,综合应用,J2me游戏,PNG,图形处理   这是个J2ME控制台程序,它能剔除PNG文件中的非关键数据段,减少文件大小从而达到压缩图片的目的。而图片的质量并不会受到损失。使用时候只需在控制台窗口执行jar就可以了。 Java 3DMenu 界面源码 5个目标文件 内容索引:Java源码,窗体界面,3DMenu   Java 3DMenu 界面源码,有人说用到游戏中不错,其实平时我信编写Java应用程序时候也能用到吧,不一定非要局限于游戏吧,RES、SRC资源都有,都在压缩包内。 Java zip压缩包查看程序源码 1个目标文件 摘要:Java源码,文件操作,压缩包查看   Java zip压缩包查看程序,应用弹出文件选择框,选择ZIP格式的压缩文件,可以像Winrar软件一样查看压缩文件内部的文件及文件夹,源码截图如上所示。 Java 数字签名、数字证书生成源码 2个目标文件 摘要:JAVA源码,系统相关,数字签名,数字证书   Java 数字签名、数字证书的相关实例。   关于数字签名:产生RSA密钥对(myKeyPair),得到RSA密钥对,产生Signature对象,对用私钥对信息(info)签名,用指定算法产生签名对象,用私钥初始化签名对象,将待签名的数据传送给签名对象(须在初始化之后),用公钥验证签名结果,使用公钥初始化签名对象,用于验证签名。   数字证书:从文件中读取数字证书,生成文件输入流,输入文件为c:/mycert.cer,获取一个处理X.509证书的证书工厂…… Java+ajax写的登录实例 1个目标文件 内容索引:Java源码,初学实例,ajax,登录   一个Java+ajax写的登录实例,附有JAVA源文件,JAVA新手朋友可以学习一下。 JAVA+JSP的聊天室 8个目标文件 简单 JavaScript万年历 显示出当前时间及年份,还可以选择年份及月份和日期 Java编写的HTML浏览器 一个目标文件 摘要:Java源码,网络相关,浏览器   Java编写的HTML浏览器源代码,一个很简单甚至不算是浏览器的HTML浏览器,使用方法:   可直接输入文件名或网络地址,但必需事先连入网络。 Java编写的山寨QQ,多人聊天+用户在线 21个目标文件 摘要:JAVA源码,媒体网络,山寨QQ,Java聊天程序   Java编写的山寨QQ,多人聊天+用户在线,程序分服务端和客户端,典型C/S结构,   当用户发送第一次请求的时候,验证用户登录,创建一个该qq号和服务器端保持通讯连接得线程,启动该通讯线程,通讯完毕,关闭Scoket。   QQ客户端登录界面,中部有三个JPanel,有一个叫选项卡窗口管理。还可以更新好友列表,响应用户双击的事件,并得到好友的编号,把聊天界面加入到管理类,设置密码保护等。 Java编写的网页版魔方游戏 内容索引:JAVA源码,游戏娱乐,魔方,网页游戏   Java编写的网页版魔方游戏,编译后生成.class文件,然后用HTML去调用,不过运行时候需要你的浏览器安装有运行Class的插件。Java源代码实现部分,比较有意思,也具参考性。像坐标控制、旋转矩阵、定时器、生成图像、数据初始化、矩阵乘法、坐标旋转、判断是否是顺时针方向排列、鼠标按下、放开时的动作等,都可在本源码中得以体现。 Java编写的显示器显示模式检测程序 2个目标文件 内容索引:JAVA源码,系统相关,系统信息检测   用JAVA编写了一个小工具,用于检测当前显示器也就是显卡的显示模式,比如分辨率,色彩以及刷新频率等。 Java波浪文字制作方法及源代码 1个目标文件 摘要:Java源码,初学实例,波浪文字   Java波浪文字,一个利用Java处理字符的实例,可以设置运动方向参数,显示文本的字符数组,高速文本颜色,显示字体的 FontMetrics对象,得到Graphics实例,得到Image实例,填充颜色数组数据,初始化颜色数组。 Java吃豆子游戏源代码 6个目标文件 内容索引:JAVA源码,游戏娱乐,JAVA游戏源码   JAVA编写的吃豆子游戏,类似疯狂坦克一样,至少界面有点像。大家可以看截图。 Java从网络取得文件 1个目标文件 简单 Java从压缩包中提取文件 1个目标文件 简单 Java存储与读取对象 1个目标文件 如题 Java调色板面板源代码 1个目标文件 摘要:Java源码,窗体界面,调色板   使用Java语言编写的一款用于反映颜色变化的面板,也就是大家熟悉的颜色调色板演示程序。原理是初始化颜色选择按钮,然后为颜色选择按钮增加事件处理事件,最后实例化颜色选择器。 Java二进制IO类与文件复制操作实例 16个目标文件 内容索引:Java源码,初学实例,二进制,文件复制   Java二进制IO类与文件复制操作实例,好像是一本书的例子,源代码有的是独立运行的,与同目录下的其它代码文件互不联系,这些代码面向初级、中级Java程序员。 Java访问权限控制源代码 1个目标文件 摘要:Java源码,文件操作,权限控制   Java访问权限控制,为Java操作文件、写入文件分配合适的权限,定义写到文件的信息、定义文件,输出到c:/hello.txt、写信息到文件、关闭输出流。 Java绘制图片火焰效果 1个目标文件 摘要:Java源码,图形操作,火焰效果   Java绘制图片火焰效果,源代码相关注释:前景和背景Image对象、Applet和绘制火焰的效果的Image对象、Applet和绘制火焰的效果的Graphics对象、火焰效果的线程、Applet的高度,图片到图片装载器、绘制火焰效果的X坐标,Y坐标、得到X坐标,Y坐标值、绘制火焰效果Image…… Java加密解密工具集 JCT v1.0源码包 5个目标文件 内容索引:JAVA源码,综合应用,JCT,加密解密   WDSsoft的一款免费源代码 JCT 1.0,它是一个Java加密解密常用工具包。 Java局域网通信——飞鸽传书源代码 28个目标文件 内容索引:JAVA源码,媒体网络,飞鸽传书   Java局域网通信——飞鸽传书源代码,大家都知道VB版、VC版还有Delphi版的飞鸽传书软件,但是Java版的确实不多,因此这个Java文件传输实例不可错过,Java网络编程技能的提升很有帮助。 Java聊天程序,包括服务端和客户端 2个目标文件,如题。 Java目录监视器源程序 9个目标文件 内容索引:JAVA源码,综合应用,目录监视   用JAVA开发的一个小型的目录监视系统,系统会每5秒自动扫描一次需要监视的目录,可以用来监视目录中文件大小及文件增减数目的变化。 Java日期选择控件完整源代码 14个目标文件 内容索引:JAVA源码,系统相关,日历,日期选择   Java语言开发的简洁实用的日期选择控件,源码文件功能说明:   [DateChooser.java] Java 日期选择控件(主体类) [public]   [TablePanel.java] 日历表格面板   [ConfigLine.java] 控制条类   [RoundBox.java] 限定选择控件   [MonthMaker.java] 月份表算法类   [Pallet.java] 调色板,统一配色类 Java扫雷源码 Java生成自定义控件源代码 2个目标文件 Java实现HTTP连接与浏览,Java源码下载 1个目标文件 摘要:Java源码,网络相关,HTTP   Java实现HTTP连接与浏览,Java源码下载,输入html文件地址或网址,显示页面和HTML源文件,一步步的实现过程请下载本实例的Java源码,代码中包括丰富的注释,对学习有帮助。 Java实现的FTP连接与数据浏览程序 1个目标文件 摘要:Java源码,网络相关,FTP   Java实现的FTP连接与数据浏览程序,实现实例化可操作的窗口。   部分源代码摘录:   ftpClient = new FtpClient(); //实例化FtpClient对象   String serverAddr=jtfServer.getText(); //得到服务器地址   String user=jtfUser.getText(); //得到用户名   String pass=jtfPass.getPassword().toString(); //得到密码   ftpClient.openServer(serverAddr); //连接到服务器   ftpClient.login(user,pass); //在服务器上注册   InputStream is=ftpClient.list(); //得到服务器目录与文件列表输入流   StringBuffer info=new StringBuffer(); //实例化StringBuffer对象,用于输出信息   int ch;   while ((ch=is.read())>=0){ //未读完列表,则继续   info.append((char)ch); //增加信息   …… Java实现的点对点短消息发送协议(smpp)开发包源码 70个目标文件,如题。 Java实现的放大镜效果附有源文件 1个目标文件 内容索引:Java源码,初学实例,放大镜,哈哈镜   Java实现的放大镜效果附有源文件,编译环境最近出了问题,因此没有测试,也没有抓到图,希望各位自行测试一下。 Java实现跟踪鼠标运行坐标的源码 1个目标文件 内容索引:JAVA源码,系统相关,鼠标钩子   Java编写的一个小程序,用以实现跟踪鼠标的运行位置(坐标),程序很小,很实用,暂时抓不到截图。 Java实现移动的遮照效果 1个目标文件 摘要:Java源码,初学实例,遮照效果   Java实现移动的遮照效果,先实现椭圆形的遮罩,实例化媒体加载器,最后在创建缓冲区中的图像形成遮罩效果,而且它是会移动的。 Java鼠标拖拽功能 1个目标文件 Netbeans平台下实现的JAVA 拖放效果的一个实例,包括源代码和所需的图片资源。 (运行后会全屏显示窗体,没有关闭按钮,可使用快捷键Ctrl + F4关闭~) Java图片倒影效果实例源码 1个目标文件 摘要:Java源码,图形操作,图片倒影   Java图片倒影效果实例源码,有意思也很有参考价值的一个Java图像处理小程序,先读取图像然后进行图像重绘,产生倒影的效果,仅供参考。 java网络五子棋的源代码 7个目标文件 AVA网络五子棋,实现基本功能,无多余花哨内容,适合大学生课程设计学习使用,内含完整可运行源代码及运行指导视频,Eclipse环境。 Java文件选择器源代码 2个目标文件 摘要:Java源码,文件操作,文件选择器   Java文件选择器源代码 Java文字跑马灯与信息窗口 1个目标文件 摘要:Java源码,文件操作,跑马灯   Java文字跑马灯效果与信息窗口,将一段文字按照滚动的方式显示出来,在网页设计中比较常见,本例使用Java实现文字跑马灯效果。 Java写的ATM机取款模拟程序 9个目标文件 内容索引:JAVA源码,综合应用,ATM,JAVA,模拟   基于Java技术,只实现了ATM机的取款过程,有兴趣和有能力的高手可以再加以改进,这样就更完美了。可作为Java初学者《面向对象》编程的一个很好范例。     在这个程序中,用到以下JAVA类库:      dataAccess(数据操作)类:包含用于数据库的相关操作   atmScreen(ATM屏幕)类:主要创建各操作窗体和相应按钮事件   Account(用户帐户)类:包含用户信息的验证、余额查询和扣钱等方法   readCard(读卡机)类:包含读取用户卡号和退卡(退出系统)   moneyMac(取钱机)类:只用于打印清单   Atm(系统)类:系统主方法的开始,负责调用其他类 Java写的巨型LCD液晶时钟显示屏 8个目标文件 内容索引:JAVA源码,综合应用,电子钟,LCD,液晶   一个巨型LCD数字电子时钟,用JAVA写的,运行截图如上示。它还带有右键菜单,LCD颜色可以变换等。 Java用GZIP压缩解压文件 1个目标文件 摘要:Java源码,文件操作,GZIP   Java使用GZIP压缩解压文件,如果你正在使用Java开发文件压缩或解压的功能,那么Gzip应该来说是比较值得参考的,那么本实例或许正是您需要的,Java基于Gzip的文件压缩与解压程序源代码,供源码下载者参考。 Java用Zip压缩多个文件实例源码 1个目标文件 摘要:Java源码,文件操作,压缩文件   Java用Zip压缩多个文件,一个Java文件操作小实例,用ZIP同进压缩多个文件,实际是打开文件读取,然后再利用ZipEntry实例化待压缩的条目列表,将ZIP条目列表写入输出流,从源文件得到文件输入流,写入缓冲数据等。 Java游戏使命的召唤源码 5个目标文件 内容索引:JAVA源码,游戏娱乐,Java游戏源码,使命的召唤   Java游戏使命的召唤源码,又名:Call of Duty,MFORMA超精典游戏,有兴趣的可以重新编译学习一下。 Java源码的仿QQ聊天程序 如题 Java中的Blowfish对称密钥加密算法类和实例 2个目标文件 内容索引:Java源码,算法相关,Blowfish,JAVA加密,对称密钥算法   JAVA中的Blowfish加密属于对称密钥算法,如果知道密钥,则可以对加密后的数据解密,但如果如果不知道密钥,基本上是不可能的,因此,这就决定了它的先天不足,就是带来的密钥的管理问题。 Java中的SSL及HTTPS协议实例源码 1个目标文件 摘要:Java源码,网络相关,HTTPS协议   Java中的SSL及HTTPS协议实例源码,使用SSL套接字的HTTPS服务器端,接受客户端的一个连接,并返回Hello,world.   本例中使用8080端口创建SSL服务器套接字,返回缺省的SocketFactory对象,生成PrintWriter对象,用于输出信息。 Java自定义光标程序源码 1个目标文件 摘要:Java源码,窗体界面,自定义光标   Java自定义光标程序源码,将光标定义成其它形式的图标,利用ToolKit对象得到图像,实例化自定义光标对象,增加组件等。 Jav动画图标源码(显示GIF图像) 1个目标文件 摘要:Java源码,图形操作,动画图标   Jav动画图标源码(显示GIF图像),学习如何连续加载GIF图像从而生成动画图标,先创建一个用于显示动画图标的数组,创建构造函数,初始化数组,重载组件绘制方法,实例化Timer对象显示动画,增加组件到窗口上。 JSP树型菜单 DTree html+js实现 Notebook源码,Java记事本 2个目标文件 摘要:Java源码,文字字符,Java记事本   Java记事本:Notebook源码下载,虽然是个功能不多的记事本,但通过这个Java程序你可以学习到不少小技巧呢!比如创建界面、安装各种监听器,在窗体上布局主菜单,保存用户编辑的文件,以及如何使用"另存为"对话框保存文件,如何新建和打开一个文档等,源代码内包括了相当多的注释,是Java新手学习JAVA编程的好范例。   当用户按下窗口的“关闭”时,会自动调用此方法。 PDF分割与合并源代码 3个目标文件 能把一个PDF分割成多个单页的PDF,把多个PDF合并成一个PDF。 QR解码的Java实现程序 25个目标文件 内容索引:JAVA源码,媒体网络,QR解码,Java   用Java实现QR解码的源程序代码。 编译原理--LR(1)分析表构造(JAVA) 8个目标文件 如题 传奇私服登录器Java版附源代码 2个目标文件,如题。 单机版java五子棋V1.1 5个目标文件 完整的单机版java五子棋游戏,主要是判定胜负的算法,使用数组进行遍历,很容易理解。 很强的Java加密解密算法源码 3个目标文件 内容索引:Java源码,算法相关,JAVA算法,加密解密   很强的JAVA加密、解密算法源码,一共有6种算法可供选择,另外还可以直接生成ZIP压缩文件。 简单的注册与登录功能 6个目标文件 一个简单的用户登录界面 要连接数据库的 有登陆 注册功能 仅供初学者学习 简单模拟的J2ME潜艇大战源代码 4个目标文件 内容索引:JAVA源码,游戏娱乐,J2ME手机游戏,潜艇大战   简单模拟的J2ME手机游戏潜艇大战的源代码,界面有些粗糙,不过基本功能都实现了,发弹,躲闪等,可以帮助新手提高J2ME技术。 局域网广播系统java源码 如题 java游戏 可实现网上对战和人机对战 7个目标文件 雷电游戏JAVA版源程序 8个目标文件 这是一个简单的Java仿雷电游戏(源码见包内),共设置有三关三个小BOSS。采用有GreenJVM发布,因此可以运行在未装载JRE的Windows系统之上。 网络蚂蚁Java版 14个目标文件 用Java实现的网络蚂蚁,功能强大,方便上传下载,断点续传等操作 网页浏览器 如题 java学生成绩系统(图形界面) 14个目标文件 如题。 java学生课程管理系统 6个目标文件 如题。 一个较初级的EJB商业应用的例子 如题 一个支持servlet的web服务器 14个目标文件 如题。 用Java加密类实现DES、RSA及SHA的加密算法 9个目标文件 如题。 用java写的SFTP代码 用java实现的Tftp(Sftp)客户端与服务器程序。在这个程序中用到了一个“状态”的机制:客户端与服务器端在开始运行时有相同的状态,通过用户的输入或程序内部运行的机制,程序可以转到不同的状态,在不同的状态下程序实现了不同的功能。 用jdom解析xml 1个目标文件 要使用jdom解析xml文件,需要下载jdom的包,我使用的是jdom-1.1。解压之后,将lib文件夹下的.jar文件以及build文件夹下的jdom.jar拷贝到工程文件夹下,然后就可以使用jdom操作xml文件了。 copass源代码 Compass是一个强大的,事务的,高性能的对象/搜索引擎映射(OSEM:object/search engine mapping)与一个Java持久层框架. Compass实现了通过注册Hibernate的相关事件实现了数据的实时索引.. DataBuffer在Java中使用ADO.NET 本源码的作者对ADO.Net有着相当深厚的感情,有着对JAVA中DataBuffer类库运用的出色理解。它是开源项目javadesktop中的一个子项目,通过它你可以真正的理解DataSet、DataTable、DataRow……类库的使用。对这方面不太熟的开发者绝对有帮助。 HAHA CHAT Java仿QQ聊天程序源代码 iCHAT聊天室基于Java 内容索引:JAVA源码,媒体网络,iChat,Java聊天室   iChat LE 1.1版源码,一个比较大型的JAVA版聊天室程序,可能要用到DLL文件,压缩包内已经有了,一年前的程序。 IP定位器 J2ME黑白棋游戏手机版 v2.1完整源码 J2ME冒险游戏CASPER源代码 J2me月光战机游戏源码 JasperReports 报表类库v3.5 Java24点游戏逼真图形版代码 Java 3D魔方游戏源码及中文注释包 内容索引:JAVA源码,游戏娱乐,JAVA3D,魔方游戏   很强的JAVA 3D魔方游戏,这是源码及中文注释包,作者的开发文档和思路都在里面,对学习很有帮助! allin.dev 重载了ListView,更好的实现! copass源代码 Java (Jsp)制作简单的表单程序 java Socket通信实现 Java 版的酒店系统,貌似完整 Java 电梯模拟程序 v2.0 Java 飞机订票 Java 高考信息管理系统 SQL数据库 java 一个消息发布网站 Java+MsSQL超市进销存(毕业设计及答辩资料) Java+sqlserver2000做的员工管理系统 Java+SQL信用卡管理系统源代码 Java+XML日程提醒系统 Java+XML写的RSS阅读器 JAVA版Swing星际争霸游戏源代码 Java半透明图片实现的步骤及源代码 JAVA帮助视图组件库 Help GUI 1.1源代码 Java毕业论文:搜索引擎系统附源代码 JAVA毕业设计_员工管理系统含文档 Java毕业设计一款J2me飞行射击游戏 Java仓库管理系统,Access数据库 Java超市管理,SQL2000+源代码 Java超市进销存系统 Java大型CERP进销存系统 Java电子相册源码 Java赌神游戏网络版源代码 JAVA短信网关平台(值得一看) Java多用户聊天室程序(毕业设计) Java仿Vista界面风格的登录窗口 Java仿千千静听音乐播放器源代码 Java火影忍者游戏源代码 Java机车狂飙源代码 JAVA开发的打字软件源程序 Java开发的简单WEB服务器源码 Java聊天程序(JBuilder) Java聊天软件Visual Chat v1.91源码 Java模仿的MSN聊天软件 Java企业人事管理系统源码 JAVA轻量级的MVC框架应用实例 Java软件度量源码 Java声音播放程序源代码 JAVA实现CLDC与MIDP底层编程的代码 JAVA实现超级玛丽 Java实现的视频播放程序源码 Java手机短信项目源码 Java手机游戏大富翁源代码+注释 Java手机与计算机互发彩信源码 Java坦克大战网络对战版源代码 Java跳棋(基于SWT) Java通讯录手机版源码 Java图片翻折,将图像压扁 Java图书馆管理系统源程序 JAVA图书馆管理系统源码 Java图像文件的缩小与放大 Java推箱子游戏(50关+音效) JAVA网络抓包程序 Java文件切割器源代码 java项目源码在线相册系统 Java写的天气预报软件 Java写的图片幻灯片切换特效 Java写的一个mp3播放器 Java学生信息管理系统源码包 Java用的在线地图浏览模块 Java游戏沙丘城堡源代码 Java游戏中斜视角编辑器及引擎源代码 Java约瑟夫环演示Applet源码 Java中的EJB编程实例代码 Java转换xml JLoading Java版的Mp3下载工具 JSP 动态数据菜单 JSP 学生管理系统(全部代码+数据库) jsp+servlet+javabean+mysql党员信息管理系统 jsp高校科研项目管理系统 JSP开发的项目跟踪系统 jsp生产管理系统 msn聊天程序Java仿真代码 P2P--多用户在线聊天室(Java源码) P2P源码 Azureus 2.5.0.2(JAVA) Skype 4.0 Java版源码及开发文档 SnakeScript Java游戏脚本引擎 v1.1 Tsinghua IP 清华大学学生写的一个有关IP的Java程序 Visualvm 基于JAVA的CPU硬件资源管理器源程序 weblogic+j2ee构建音乐网站(原代码+数据库) web综合教学管理系统 YOYOPlayer 基于Java的网络播放器源代码 宾馆管理系统 餐饮门户 超市购物系统 车间管控 打地鼠游戏 单位固定资产登记管理系统JAVA版 电子书店管理系统 分离SQL Server数据库 基于BS结构的Java可视化工作流定制软件 基于J2ME的Java游戏梦幻炸弹人源程序 基于JAVA的ICQ系统 基于Java的mp3播放器源代码 基于JAVA的日程提醒簿 基于Java的小型人事管理系统,带数据库 基于Java的邮件服务器源程序 基于MVC的Java资源管理器 v2.0 季风进销存管理系统(JSP版) 家庭多媒体播放器 开源Winzip压缩工具Java版源码 客户管理系统 Alfresco Content Management 乐趣大型购物系统 类似QQ的聊天软件JAVA版源码(附设计文档) 连接postsql数据库的java代码 泡泡堂战车游戏JAVA版源码 配置ODBC数据源 企业进销存管理系统 轻松商城系统 手机游戏J2ME毕业设计 书籍管理系统 网络电视源代码TV-Browser 蜀山剑侠传游戏J2ME手机版源代码 网上书店 物业管理系统毕业设计+源码 销售预测系统PDP系统 选修课程管理系统V1.2.3 阳光酒店管理系统 一款Java网络格斗游戏源码 用iText类库制作PDF文档 用JAVA做的聊天软件,有安装程序和源代码 在Servlet中连接数据库的Java代码 中国移动业务管理系统源码(SSH框架)
本书介绍TCP/IP及其应用。TCP/IP是Internet上使用的协议,而Internet是世界上最大的互联网络。本书内容十分丰富,几乎涵盖了有关TCP/IP的各个方面,包括开放式通信模型、TCP/IP通信模型、IP网络中的命名和寻址机制、地址解析及反向地址解析协议、DNS域字服务器、WINS、地址发现协议、IPv6、IP网络中的路由协议(RIP、OSPF等)、互联网打印协议、LDAP目录服务、远程访问协议、IP安全与防火墙。本书介绍了如何为Windows 9x/NT配置TCP/IP;还介绍了如何使用TCP/IP应用程序,包括远程登录、FTP、Web浏览等。 目 录 译者序 前言 第一部分 TCP/IP基础 第1章 开放式通信模型简介 1 1.1 开放式网络的发展 1 1.1.1 通信处理层次化 2 1.1.2 OSI参考模型 3 1.1.3 模型的使用 5 1.2 TCP/IP参考模型 7 1.3 小结 7 第2章 TCP/IP和Internet 8 2.1 一段历史 8 2.1.1 ARPANET 8 2.1.2 TCP/IP 9 2.1.3 国家科学基金会(NSF) 9 2.1.4 当今的Internet 12 2.2 RFC和标准化过程 12 2.2.1 获得RFC 13 2.2.2 RFC索引 13 2.2.3 有关RFC的幽默 13 2.3 Internet服务简介 13 2.3.1 Whois和Finger 14 2.3.2 文件传输协议 14 2.3.3 Telnet 14 2.3.4 Email 14 2.3.5 WWW 14 2.3.6 USENET News 15 2.4 Intranet和Extranet概览 15 2.4.1 Intranet 15 2.4.2 将Intranet对外开放 16 2.5 Internet的明天 16 2.5.1 下一代Internet(NGI) 16 2.5.2 超速骨干网服务 16 2.5.3 Internet2(I2) 17 2.6 Internet管理组织 17 2.6.1 Internet协会 17 2.6.2 Internet体系结构组 17 2.6.3 Internet工程任务组 17 2.6.4 Internet工程指导组 17 2.6.5 Internet编号管理局 18 2.6.6 Internet名字和编号分配组织 (ICANN) 18 2.6.7 Internet网络信息中心和其他注 册组织 18 2.6.8 RFC编辑 18 2.6.9 Internet服务提供商 18 2.7 小结 19 第3章 TCP/IP概述 20 3.1 TCP/IP的优点 20 3.2 TCP/IP的层和协议 21 3.2.1 体系结构 21 3.2.2 传输控制协议 21 3.2.3 IP协议 23 3.2.4 应用层 25 3.2.5 传输层 25 3.2.6 网络层 25 3.2.7 链路层 25 3.3 远程登录(Telnet) 25 3.4 文件传输协议(FTP) 25 3.5 普通文件传输协议(TFTP) 26 3.6 简单邮件传输协议(SMTP) 26 3.7 网络文件系统(NFS) 26 3.8 简单网络管理协议(SNMP) 27 3.9 TCP/IP和系统结合 27 3.10 内部网概述 28 3.11 小结 28 第二部分 命名和寻址 第4章 IP网络中的名字和地址 29 4.1 IP寻址 29 4.1.1 二进制和十进制数 30 4.1.2 IPv4地址格式 30 4.2 子网的出现 34 4.2.1 分子网 35 4.2.2 可变长子网掩码(VLSM) 37 4.3 无类域前路由(CIDR) 38 4.3.1 无类地址 38 4.3.2 强化路由汇聚 39 4.3.3 超网化 39 4.3.4 CIDR怎样工作 39 4.3.5 公共地址空间 40 4.3.6 RFC 1597和1918 40 4.4 小结 40 第5章 ARP和RARP 41 5.1 使用地址 41 5.1.1 子网寻址 41 5.1.2 IP地址 43 5.2 使用地址解析协议 44 5.2.1 ARP cache 45 5.2.2 代理ARP 47 5.2.3 反向地址解析协议 4
太大了,分了四个包<br>目 录<br>译者序<br>前言<br>第一部分 TCP/IP基础<br>第1章 开放式通信模型简介 1<br>1.1 开放式网络的发展 1<br>1.1.1 通信处理层次化 2<br>1.1.2 OSI参考模型 3<br>1.1.3 模型的使用 5<br>1.2 TCP/IP参考模型 7<br>1.3 小结 7<br>第2章 TCP/IP和Internet 8<br>2.1 一段历史 8<br>2.1.1 ARPANET 8<br>2.1.2 TCP/IP 9<br>2.1.3 国家科学基金会(NSF) 9<br>2.1.4 当今的Internet 12<br>2.2 RFC和标准化过程 12<br>2.2.1 获得RFC 13<br>2.2.2 RFC索引 13<br>2.2.3 有关RFC的幽默 13<br>2.3 Internet服务简介 13<br>2.3.1 Whois和Finger 14<br>2.3.2 文件传输协议 14<br>2.3.3 Telnet 14<br>2.3.4 Email 14<br>2.3.5 WWW 14<br>2.3.6 USENET News 15<br>2.4 Intranet和Extranet概览 15<br>2.4.1 Intranet 15<br>2.4.2 将Intranet对外开放 16<br>2.5 Internet的明天 16<br>2.5.1 下一代Internet(NGI) 16<br>2.5.2 超速骨干网服务 16<br>2.5.3 Internet2(I2) 17<br>2.6 Internet管理组织 17<br>2.6.1 Internet协会 17<br>2.6.2 Internet体系结构组 17<br>2.6.3 Internet工程任务组 17<br>2.6.4 Internet工程指导组 17<br>2.6.5 Internet编号管理局 18<br>2.6.6 Internet名字和编号分配组织<br> (ICANN) 18<br>2.6.7 Internet网络信息中心和其他注<br> 册组织 18<br>2.6.8 RFC编辑 18<br>2.6.9 Internet服务提供商 18<br>2.7 小结 19<br>第3章 TCP/IP概述 20<br>3.1 TCP/IP的优点 20<br>3.2 TCP/IP的层和协议 21<br>3.2.1 体系结构 21<br>3.2.2 传输控制协议 21<br>3.2.3 IP协议 23<br>3.2.4 应用层 25<br>3.2.5 传输层 25<br>3.2.6 网络层 25<br>3.2.7 链路层 25<br>3.3 远程登录(Telnet) 25<br>3.4 文件传输协议(FTP) 25<br>3.5 普通文件传输协议(TFTP) 26<br>3.6 简单邮件传输协议(SMTP) 26<br>3.7 网络文件系统(NFS) 26<br>3.8 简单网络管理协议(SNMP) 27<br>3.9 TCP/IP和系统结合 27<br>3.10 内部网概述 28<br>3.11 小结 28<br>第二部分 命名和寻址<br>第4章 IP网络中的名字和地址 29<br>4.1 IP寻址 29<br>4.1.1 二进制和十进制数 30<br>4.1.2 IPv4地址格式 30<br>4.2 子网的出现 34<br>4.2.1 分子网 35<br>4.2.2 可变长子网掩码(VLSM) 37<br>4.3 无类域前路由(CIDR) 38<br>4.3.1 无类地址 38<br>4.3.2 强化路由汇聚 39<br>4.3.3 超网化 39<br>4.3.4 CIDR怎样工作 39<br>4.3.5 公共地址空间 40<br>4.3.6 RFC 1597和1918 40<br>4.4 小结 40<br>第5章 ARP和RARP 41<br>5.1 使用地址 41<br>5.1.1 子网寻址 41<br>5.1.2 IP地址 43<br>5.2 使用地址解析协议 44<br>5.2.1 ARP cache 45<br>5.2.2 代理ARP 47<br>5.2.3 反向地址解析协议 47<br>5.3 使用ARP命令 47<br>5.4 小结 47<br>第6章 DNS:名字服务器 48<br>6.1 域名系统概述 48<br>6.2 授权局 50<br>6.3 DNS分布数据库 50<br>6.4 域和区 50<br>6.5 Internet顶级域 51<br>6.6 选择一个域名服务器 52<br>6.7 名字服务解析过程 52<br>6.7.1 递归查询 52<br>6.7.2 叠代查询 52<br>6.8 高速缓存 52<br>6.9 反向解析(Pointer)查询 52<br>6.10 DNS安全 52<br>6.11 资源记录 53<br>6.12 小结 54<br>第7章 WINS 55<br>7.1 NetBIOS 55<br>7.2 NetBIOS名字解析 57<br>7.3 动态NetBIOS名字解析 58<br>7.3.1 使用WINS的优点 58<br>7.3.2 WINS如何工作 59<br>7.3.3 配置WINS客户机 60<br>7.3.4 为代理配置WINS 60<br>7.3.5 配置NT 4.0系统 61<br>7.3.6 配置Windows 95或Windows 98<br> 系统 61<br>7.4 安装WINS服务器 61<br>7.5 WINS管理和维护 62<br>7.5.1 加入静态表项 62<br>7.5.2 维护WINS数据库 63<br>7.5.3 备份WINS数据库 65<br>7.5.4 备份WINS注册项 65<br>7.5.5 恢复WINS数据库 65<br>7.5.6 压缩WINS数据库 66<br>7.5.7 WINS复制参与者 66<br>7.5.8 WINS实现建议 67<br>7.6 集成WINS和DNS名字解析服务 67<br>7.7 DHCP服务WINS选项 67<br>7.8 通过LMHOSTS进行NetBIOS名字<br> 解析 68<br>7.9 小结 69<br>第8章 地址发现协议(BOOTP和DHCP) 71<br>8.1 “引导”协议(BOOTP) 71<br>8.2 动态主机配置协议(DHCP) 72<br>8.2.1 DHCP如何工作 72<br>8.2.2 理解租用地址 73<br>8.3 管理地址池 74<br>8.4 DHCP能处理的其他分配 75<br>8.4.1 注意重载 75<br>8.4.2 其他分配 75<br>8.5 小结 76<br>第三部分 IP和相关协议<br>第9章 IP协议家族 77<br>9.1 TCP/IP模型 77<br>9.1.1 解剖TCP/IP模型 78<br>9.1.2 协议组件 78<br>9.2 理解网际协议(IP) 79<br>9.2.1 IPv4结构 79<br>9.2.2 IP做什么 80<br>9.3 理解传输控制协议(TCP) 81<br>9.3.1 TCP头结构 81<br>9.3.2 TCP做什么 83<br>9.4 理解用户数据报协议(UDP) 85<br>9.4.1 UDP头结构 85<br>9.4.2 UDP能做什么 85<br>9.4.3 TCP和UDP 86<br>9.5 小结 86<br>第10章 IPv6 87<br>10.1 IPv6数据报 87<br>10.1.1 优先级分类 88<br>10.1.2 流标识 89<br>10.1.3 128位IP地址 89<br>10.1.4 IP扩展头 90<br>10.2 多IP地址主机 91<br>10.3 单播、组播和任一播头 91<br>10.4 从IPv4到IPv6的过渡 93<br>10.5 小结 94<br>第四部分 IP互联<br>第11章 IP网络中的路由 95<br>11.1 路由基本知识 95<br>11.1.1 静态路由 96<br>11.1.2 距离-向量路由 99<br>11.1.3 链路-状态路由 100<br>11.2 IP网络中的收敛 102<br>11.2.1 适应拓扑变化 102<br>11.2.2 收敛时间 106<br>11.3 计算IP网络中的路由 106<br>11.3.1 存储多条路由 107<br>11.3.2 初始化更新 107<br>11.3.3 路由度量标准 107<br>11.4 小结 108<br>第12章 路由信息协议(RIP) 109<br>12.1 理解RFC1058 109<br>12.1.1 RIP报文格式 109<br>12.1.2 RIP路由表 111<br>12.2 操作机制 112<br>12.2.1 计算距离向量 113<br>12.2.2 更新路由表 116<br>12.2.3 寻址问题 118<br>12.3 拓扑变化 120<br>12.3.1 收敛 120<br>12.3.2 计值到无穷 122<br>12.4 RIP的限制 127<br>12.4.1 跳数限制 128<br>12.4.2 固定度量 128<br>12.4.3 对路由表更新反应强烈 128<br>12.4.4 收敛慢 128<br>12.4.5 缺乏负载均衡 128<br>12.5 小结 129<br>第13章 开放式最短路径优先 130<br>13.1 OSPF起源 130<br>13.2 理解RFC 2328 OSPF,版本2 130<br>13.2.1 OSPF区 131<br>13.2.2 路由更新 134<br>13.3 研究OSPF数据结构 136<br>13.3.1 HELLO报文 137<br>13.3.2 数据库描述报文 137<br>13.3.3 链路-状态请求报文 138<br>13.3.4 链路-状态更新报文 138<br>13.3.5 链路-状态应答报文 140<br>13.4 计算路由 140<br>13.4.1 使用自动计算 140<br>13.4.2 使用缺省路由耗费 141<br>13.4.3 最短路径树 142<br>13.5 小结 144<br>第14章 网关协议 145<br>14.1 网关、桥和路由器 145<br>14.1.1 网关 145<br>14.1.2 网桥 146<br>14.1.3 路由器 146<br>14.1.4 自治系统 146<br>14.2 网关协议:基础知识 146<br>14.3 内部网关协议和外部网关协议 147<br>14.3.1 网关-网关协议(GGP) 147<br>14.3.2 外部网关协议(EGP) 147<br>14.3.3 内部网关协议(IGP) 148<br>14.4 小结 148<br>第五部分 网络服务<br>第15章 互联网打印协议 149<br>15.1 IPP历史 149<br>15.2 IPP和端用户 150<br>15.3 使用HP的IPP实现 151<br>15.4 小结 152<br>第16章 LDAP:目录服务 153<br>16.1 为什么使用目录服务 153<br>16.2 目录服务的功能 153<br>16.3 IP上的目录服务 154<br>16.4 OSI X.500目录模型 156<br>16.4.1 早期的X.500 157<br>16.4.2 今天的X.500 157<br>16.5 LDAP结构 157<br>16.5.1 LDAP层次结构 157<br>16.5.2 名字结构 158<br>16.6 目录系统代理和访问协议 158<br>16.7 轻型目录访问协议 158<br>16.7.1 查询信息 159<br>16.7.2 存储信息 160<br>16.7.3 访问权限和安全 160<br>16.8 LDAP服务器-服务器通信 161<br>16.8.1 LDAP数据互换格式(LDIF) 161<br>16.8.2 LDAP复制 162<br>16.9 设计LDAP服务 162<br>16.9.1 定义需求 162<br>16.9.2 设计策略 163<br>16.9.3 性能 164<br>16.9.4 网络功能 165<br>16.9.5 安全 166<br>16.10 LDAP配置 169<br>16.11 产品环境 169<br>16.11.1 创建计划 170<br>16.11.2 有价值的建议 171<br>16.12 选择LDAP软件 171<br>16.13 小结 174<br>第17章 远程访问协议 175<br>17.1 远程互联 175<br>17.1.1 ISDN 176<br>17.1.2 电缆调制解调器 176<br>17.1.3 数字用户环(DSL) 176<br>17.1.4 无线网络 177<br>17.2 远程认证拨入用户服务(RADIUS) 177<br>17.2.1 RADIUS认证 178<br>17.2.2 记账信息 179<br>17.3 用SLIP、CSLIP和PPP传输IP数<br> 据报文 179<br>17.3.1 串行线路接口协议(SLIP) 179<br>17.3.2 压缩的SLIP(CSLIP) 180<br>17.3.3 点到点协议(PPP) 180<br>17.4 隧道远程访问 184<br>17.4.1 点到点隧道协议(PPTP) 185<br>17.4.2 两层隧道协议(L2TP) 188<br>17.4.3 IPSec 192<br>17.5 小结 194<br>第18章 防火墙 195<br>18.1 使网络安全 195<br>18.2 使用防火墙 196<br>18.2.1 代理服务器 197<br>18.2.2 报文过滤器 198<br>18.3 使服务安全 198<br>18.3.1 电子邮件(SMTP) 198<br>18.3.2 HTTP:万维网 199<br>18.3.3 FTP 199<br>18.3.4 Telnet 199<br>18.3.5 Usenet:NNTP 199<br>18.3.6 DNS 200<br>18.4 建造用户自己的防火墙 200<br>18.5 使用商业防火墙软件 200<br>18.6 小结 202<br>第19章 IP安全 203<br>19.1 使用加密 203<br>19.1.1 公共-私钥加密 204<br>19.1.2 对称私钥加密 205<br>19.1.3 DES、IDEA及其他 205<br>19.2 数字签名认证 206<br>19.3 破译加密的数据 207<br>19.4 保护网络 207<br>19.4.1 登录名和口令 208<br>19.4.2 文件的目录允许权限 208<br>19.4.3 信任关系 209<br>19.4.4 UNIX和Linux系统上的UUCP 209<br>19.5 应付最坏情况 210<br>19.6 小结 210<br>第六部分 实现TCP/IP<br>第20章 一般配置问题 211<br>20.1 安装网卡 211<br>20.1.1 网卡 211<br>20.1.2 资源配置 212<br>20.1.3 安装适配器软件 213<br>20.1.4 重定向器和API 214<br>20.1.5 服务 214<br>20.1.6 NIC接口 215<br>20.2 网络和传输层协议 215<br>20.2.1 IP配置要求 215<br>20.2.2 配置缺省网关地址 216<br>20.2.3 配置名字服务器地址 217<br>20.2.4 配置邮件服务器地址 217<br>20.2.5 注册域名 218<br>20.3 IP配置 218<br>20.4 配置路由表 218<br>20.5 异种协议的IP封装 219<br>20.6 小结 220<br>第21章 Windows 98 221<br>21.1 Windows 98网络体系结构 221<br>21.1.1 安装网卡 222<br>21.1.2 更改网卡配置 224<br>21.1.3 当Windows 98引导失败 224<br>21.2 配置Windows 98的TCP/IP 225<br>21.2.1 写在开始之前 225<br>21.2.2 安装TCP/IP 225<br>21.2.3 配置微软的TCP/IP 225<br>21.2.4 DNS配置 227<br>21.2.5 静态配置文件 228<br>21.2.6 注册表配置 229<br>21.2.7 测试TCP/IP 231<br>21.3 小结 232<br>第22章 Windows 98拨号网络 233<br>22.1 配置拨号网络适配器 233<br>22.2 安装拨号网络 234<br>22.3 服务器类型 235<br>22.4 编写脚本 238<br>22.5 多重链接 238<br>22.6 PPTP 239<br>22.6.1 安装及配置PPTP 240<br>22.6.2 建立PPTP连接 240<br>22.7 Windows 98拨号服务器 241<br>22.8 解决拨号网络连接中的问题 242<br>22.8.1 确认DUN配置 242<br>22.8.2 PPP日志 243<br>22.9 小结 243<br>第23章 Windows NT 4.0 244<br>23.1 Windows NT版本 244<br>23.2 体系结构 244<br>23.3 安装Windows NT 4.0 244<br>23.4 配置TCP/IP 246<br>23.4.1 IP地址 246<br>23.4.2 DNS 248<br>23.4.3 WINS地址 248<br>23.4.4 DHCP中继 249<br>23.4.5 路由 250<br>23.5 简单TCP/IP服务 250<br>23.6 远程访问服务(RAS) 250<br>23.7 DHCP服务器 252<br>23.7.1 安装DHCP服务器服务 252<br>23.7.2 控制DHCP服务器服务 253<br>23.7.3 压缩DHCP数据库 253<br>23.7.4 管理DHCP 254<br>23.8 使用Microsoft DNS 256<br>23.8.1 安装DNS 256<br>23.8.2 创建区 257<br>23.8.3 配置逆向域名解功能 258<br>23.8.4 配置DNS与WINS服务器的连<br> 接 259<br>23.8.5 增加辅助名字服务器 259<br>23.9 FTP和HTTP服务 259<br>23.10 TCP/IP打印服务 259<br>23.10.1 安装TCP/IP打印服务 259<br>23.10.2 安装LPR服务 260<br>23.11 Windows 2000新特性 260<br>23.12 小结 261<br>第24章 在Novell NetWare中支持IP 262<br>24.1 Novell与TCP/IP 262<br>24.1.1 IP与NetWare 4 262<br>24.1.2 NetWare 5与Pure IP初始化 262<br>24.2 传统解决方案:NetWare 3.x到<br> NetWare 4.x的IP支持 263<br>24.2.1 IP隧道 264<br>24.2.2 IP中继 264<br>24.2.3 LAN WorkPlace 264<br>24.2.4 IPX-IP网关 265<br>24.2.5 NetWare/IP 265<br>24.3 NetWare 5—Novell对IP的<br> 完全支持 266<br>24.3.1 纯IP 266<br>24.3.2 多协议 266<br>24.4 安装选项 266<br>24.4.1 NetWare 5的IP-Only安装 267<br>24.4.2 IPX-Only安装 267<br>24.4.3 混合TCP/IP安装 268<br>24.5 IP迁移辅助工具 268<br>24.5.1 NDS 268<br>24.5.2 DNS 269<br>24.5.3 DHCP 269<br>24.5.4 DDNS 269<br>24.5.5 SLP 269<br>24.5.6 兼容模式 269<br>24.5.7 迁移代理 270<br>24.6 迁移策略 270<br>24.6.1 使用测试平台 270<br>24.6.2 迁移建议 270<br>24.7 小结 271<br>第七部分 使用TCP/IP应用<br>第25章 Whois和Finger 273<br>25.1 理解Whois协议 273<br>25.1.1 互联网注册 273<br>25.1.2 Whois数据库 274<br>25.1.3 基于Web的Whois 275<br>25.1.4 命令行方式的Whois 276<br>25.1.5 示例 276<br>25.1.6 基于Telnet的Whois 278<br>25.2 扩充Whois 279<br>25.2.1 提示Whois(RWhois) 279<br>25.2.2 WHOIS++ 280<br>25.3 使用Finger 280<br>25.3.1 Finger命令 280<br>25.3.2 Finger 守护进程 282<br>25.3.3 非UNIX环境下的Finger 283<br>25.3.4 Finger的应用 283<br>25.4 相关RFC文档 285<br>25.5 小结 285<br>第26章 文件传输协议 286<br>26.1 FTP和TFTP在网络世界中的作用 286<br>26.2 使用FTP传输文件 286<br>26.2.1 FTP连接 287<br>26.2.2 使用FTP客户端建立连接 288<br>26.2.3 FTP安全 296<br>26.2.4 FTP服务器及守护进程 299<br>26.2.5 匿名FTP访问 299<br>26.3 使用TFTP 300<br>26.3.1 FTP与TFTP的区别 301<br>26.3.2 TFTP命令 301<br>26.4 小结 301<br>第27章 使用Telnet 302<br>27.1 理解Telnet协议 302<br>27.2 Telnet守护进程 303<br>27.3 使用Telnet 304<br>27.3.1 UNIX telnet命令 304<br>27.3.2 Telnet GUI应用 305<br>27.3.3 Telnet命令 305<br>27.3.4 示例 308<br>27.4 高级主题 309<br>27.4.1 安全 309<br>27.4.2 Telnet应用 309<br>27.4.3 使用Telnet访问其他TCP/IP<br> 服务 310<br>27.5 相关RFC文档 312<br>27.6 小结 313<br>第28章 使用r系列实用工具 314<br>28.1 理解r系列命令 314<br>28.1.1 安全问题 314<br>28.1.2 禁止使用r系列命令 315<br>28.1.3 增强r系列命令的安全性 316<br>28.2 使用r系列命令的替代方法 317<br>28.3 r系列命令详解 317<br>28.3.2 相关文件 320<br>28.4 在非UNIX环境下实现r系<br> 列命令的功能 321<br>28.5 小结 322<br>第29章 使用网络文件系统(NFS) 323<br>29.1 什么是NFS 323<br>29.1.1 NFS的历史 323<br>29.1.2 为何使用NFS 323<br>29.2 实现—NFS工作过程 324<br>29.2.1 远程过程调用(RPC)<br> 和外部数据表示(XDR) 324<br>29.2.2 加载类型 324<br>29.3 NFS使用的文件及命令 325<br>29.3.1 NFS守护进程 325<br>29.3.2 与NFS相关的文件 327<br>29.3.3 NFS服务器命令 329<br>29.3.4 NFS客户命令 331<br>29.4 示例:共享及加载NFS文件系统 333<br>29.5 NFS常见问题及解决方案 334<br>29.5.1 不能加载 334<br>29.5.2 不能卸载 334<br>29.5.3 硬加载与软加载 334<br>29.6 相关协议及产品 334<br>29.6.1 WebNFS 335<br>29.6.2 基于PC的NFS及其他客户端<br> 软件 335<br>29.6.3 SMB和CIFS 335<br>29.6.4 其他产品 336<br>29.7 小结 336<br>第八部分 使用基于IP的应用<br>第30章 在应用中集成TCP/IP 337<br>30.1 使用浏览器作为表示层 338<br>30.2 不断增加的Internet应用 338<br>30.3 在已有应用中集成TCP/IP 339<br>30.4 在其他网络中使用TCP/IP 339<br>30.4.1 NetBIOS与TCP/IP 339<br>30.4.2 IPX与UDP 340<br>30.4.3 ARCNET与TCP/IP 340<br>30.5 小结 340<br>第31章 Internet Email协议 341<br>31.1 电子邮件 341<br>31.1.1 电子邮件的历史 341<br>31.1.2 标准及制定标准的组织 341<br>31.2 X.400 341<br>31.3 简单邮件传输协议(SMTP) 343<br>31.3.1 MIME和SMTP 343<br>31.3.2 其他编码标准 344<br>31.3.3 SMTP命令 344<br>31.3.4 SMTP状态码 345<br>31.3.5 扩展SMTP 345<br>31.3.6 检查SMTP的头 346<br>31.3.7 SMTP的优势与不足 347<br>31.4 使用POP和IMAP取回客户邮件 347<br>31.4.1 邮局协议(POP) 347<br>31.4.2 互联网邮件访问协议(IMAP) 348<br>31.4.3 POP3与IMAP4的比较 348<br>31.5 高级主题 349<br>31.6 相关RFC文档及其他参考信息 351<br>31.7 小结 352<br>第32章 HTTP: World Wide Web 353<br>32.1 万维网(WWW) 353<br>32.1.1 Web简史 353<br>32.1.2 Web的发展 354<br>32.2 统一资源定位器 354<br>32.3 Web服务器与浏览器 355<br>32.4 理解HTTP 356<br>32.4.1 HTTP/1.1 356<br>32.4.2 MIME与Web 358<br>32.4.3 HTTP通信示例 358<br>32.5 高级主题 359<br>32.5.1 服务器方功能 359<br>32.5.2 SSL和S-HTTP 359<br>32.6 Web语言 359<br>32.6.1 HTML 360<br>32.6.2 XML 360<br>32.6.3 CGI 361<br>32.6.4 Java 361<br>32.6.5 JavaScript 362<br>32.6.6 动态服务器页面 362<br>32.7 Web的未来 363<br>32.7.1 HTTP-ng 363<br>32.7.2 IIOP 363<br>32.7.3 IPv6 363<br>32.7.4 IPP 363<br>32.8 小结 364<br>第33章 NNTP:互联网新闻组 365<br>33.1 互联网新闻组 365<br>33.2 新闻组和层次 366<br>33.3 网络新闻传输协议 367<br>33.3.1 获取新闻组 367<br>33.3.2 获取消息 369<br>33.3.3 发布消息 370<br>33.4 大量广告(Spamming)和新闻黑洞<br> (Blackholing) 371<br>33.5 小结 371<br>第34章 Web服务 373<br>34.1 Web服务工作概览 373<br>34.2 主流Web服务器 375<br>34.3 运行Apache HTTP Web服务 376<br>34.3.1 下载、安装和配置Apache 376<br>34.3.2 在Windows环境下使用Apache 381<br>34.4 浏览其他Web服务器 383<br>34.5 小结 383<br>第九部分 使用与管理TCP/IP网络<br>第35章 协议配置与调整 385<br>35.1 系统的初始化问题 385<br>35.2 配置文件 390<br>35.2.1 在/etc/protocols文件中定义网<br> 络协议 390<br>35.2.2 在/etc/hosts文件中标识主机 391<br>35.2.3 TCP/IP与/etc/services文件 392<br>35.2.4 inetd守护进程与/etc/inetd.conf<br> 文件 394<br>35.2.5 在/etc/networks文件中设置网络 397<br>35.2.6 DNS客户与/etc/resolv.conf 397<br>35.3 小结 398<br>第36章 配置DNS 399<br>36.1 域名服务器 399<br>36.2 资源记录 400<br>36.3 域名解析 401<br>36.4 配置UNIX或Linux域名服务器<br> (DNS) 401<br>36.4.1 添加资源记录 402<br>36.4.2 完成DNS文件 402<br>36.4.3 启动DNS守护进程 405<br>36.4.4 配置客户端 405<br>36.5 Windows和域名服务器 405<br>36.6 小结 406<br>第37章 网络管理 407<br>37.1 制定网络监控方案 407<br>37.2 网络问题及其解决方案 408<br>37.3 网络管理工具 408<br>37.3.1 使用协议分析器 409<br>37.3.2 专家系统 410<br>37.3.3 基于PC的分析器 410<br>37.3.4 网络管理协议支持 411<br>37.3.5 集成网络仿真/模型工具 411<br>37.4 配置SNMP 412<br>37.4.1 配置Windows SNMP 413<br>37.4.2 配置UNIX SNMP 414<br>37.4.3 SNMP安全属性 414<br>37.4.4 SNMP代理与管理 415<br>37.5 SNMP工具及命令 416<br>37.6 RMON及相关的MIB模型 417<br>37.7 建立网管需求 417<br>37.8 小结 419<br>第38章 SNMP:简单网络管理协议 420<br>38.1 什么是SNMP 420<br>38.2 管理信息基(MIB) 421<br>38.3 使用SNMP 421<br>38.4 UNIX与SNMP 422<br>38.4.1 在UNIX和Linux上安装SNMP 423<br>38.4.2 SNMP命令 424<br>38.5 Windows与SNMP 424<br>38.5.1 Windows NT 425<br>38.5.2 Windows 95、Windows 98和<br> Windows 3.x 425<br>38.6 小结 427<br>第39章 加强TCP/IP传输安全 428<br>39.1 定义所需的网络安全 428<br>39.1.1 什么是网络安全 428<br>39.1.2 为什么网络安全非常重要 429<br>39.1.3 安全级别 429<br>39.1.4 口令与口令文件 430<br>39.1.5 控制对口令的访问 430<br>39.2 加强网络安全 431<br>39.2.1 攻击种类 431<br>39.2.2 加强网络安全 432<br>39.3 应用配置 434<br>39.3.1 Internet守护进程与<br> /etc/inetd.conf 434<br>39.3.2 网络加密软件 436<br>39.3.3 TCP Wrapper 436<br>39.4 使用端口及可信端口 437<br>39.4.1 防火墙 437<br>39.4.2 包过滤 437<br>39.4.3 应用层网关 438<br>39.4.4 其他应用的过滤 438<br>39.5 一般安全事务 438<br>39.5.1 用户帐号维护 438<br>39.5.2 审计 438<br>39.5.3 正确的系统配置 438<br>39.6 小结 438<br>第40章 问题解决工具及要点 440<br>40.1 监视网络行为 440<br>40.2 标准应用程序 440<br>40.2.1 测试基本连接 441<br>40.2.2 ping命令 442<br>40.2.3 解决网络访问故障 443<br>40.3 解决网络接口层问题 449<br>40.4 解决网络层问题 449<br>40.4.1 TCP/IP配置参数 449<br>40.4.2 IP地址配置问题 450<br>40.5 解决TCP和UDP问题 453<br>40.6 解决应用层问题 455<br>40.7 小结 455<br>第十部分 附 录<br>附录A RFC及标准化 457<br>附录B Linux 469<br>附录C 简写与缩略语 480<br>

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值