本文共 4673 字,大约阅读时间需要 15 分钟。
一、网络
网络是信息传输、接收、共享的虚拟平台,通过它把各个点、面、体的信息联系到一起,从而实现这些资源的共享。
二、通信
指通过某种行为或媒介,将信息从某一方准确安全地传送到另一方。
三、网络通信
通过网络将各个孤立的设备进行连接,通过信息交换实现人与人,人与计算机,计算机与计算机之间的通信。
四、http协议
超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。
五、HTTPS(全称:Hyper Text Transfer Protocoover Secure Socket Layer),是以安全为目标的HTTP通道,采用加密方式进行传输。
六、HTTP协议原理(四次握手)
(1)首先客户端与服务器需要建立连接。只要单击某个超级链接,HTTP的工作就开始了。
(2)建立连接后,客户端发送一个请求给服务器,请求方式的格式为:统一资源标识符(URL)、协议版本号,后边是MIME信息包括请求修饰符、客户机信息和可能的内容。 (3)服务器接到请求后,给予相应的响应信息,其格式为一个状态行,包括信息的协议版本号、一个成功或错误的代码,后边是MIME信息包括服务器信息、实体信息和可能的内容。 (4)客户端接收服务器所返回的信息通过浏览器显示在用户的显示屏上,然后客户机与服务器断开连接。七、请求报文
一个HTTP请求报文由请求行(request line)、请求头(header)、空行、请求数据4个部分组成。
8.响应报文
HTTP响应报文由三个部分组成,分别是:状态行、消息报头、响应正文。
状态代码由三位数字组成,第一个数字定义了响应的类别,且有五种可能取值。
1xx:指示信息--表示请求已接收,继续处理。 2xx:成功--表示请求已被成功接收、理解、接受。 3xx:重定向--要完成请求必须进行更进一步的操作。 4xx:客户端错误--请求有语法错误或请求无法实现。 5xx:服务器端错误--服务器未能实现合法的请求。常见状态代码:
200 OK:客户端请求成功。 400 Bad Request:客户端请求有语法错误,不能被服务器所理解。 401 Unauthorized:请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用。 403 Forbidden:服务器收到请求,但是拒绝提供服务。 404 Not Found:请求资源不存在,举个例子:输入了错误的URL。 500 InternaServer Error:服务器发生不可预期的错误。 503 Server Unavailable:服务器当前不能处理客户端的请求,一段时间后可能恢复正常。九、http模块
http.server()用来创建后台服务。
十、http客户端
http模块提供了两个函数http.request()和http.get(),功能是作为客户端向服务器端发送请求。
let http = require('http')let data = [ { id: '0001', name: 'Tom', age: 18 }, { id: '0002', name: 'aaaa', age: 19 }, { id: '0003', name: 'bbbb', age: 20 }];// http.createServer((req, res) => {// //设置响应头// /* // 参数1:必选,三位数的http状态码// 参数2:可选,可有可无// 参数3:可选,告诉浏览器我发给你的数据是什么类型的// */// res.writeHead(200, {// //text/plain的意思是将文件设置为纯文本的形式// //浏览器在获取到这种文件时并不会对其进行处理// "content-type": 'text/plain'// });// res.write(JSON.stringify(data));// res.end()// }).listen(8000)http.createServer((req, res) => { console.log(req.url); res.writeHead(200, { "content-type": 'text/plain' }); res.write(JSON.stringify(data)); res.end()}).listen(8000)
1、http.request()
http.request(options,callback)用于发起http请求,接收两个参数,options是一个类似关联数组的对象,里面包含一些请求的参数,callback表示请求后的回调。
注意:用http.request()方法时,必须调用req.end()方法,否则服务器不会收到信息。
const http = require('http')let options = { host: 'www.baidu.com', port: 80, methods: 'get', path: '/'}let req = http.request(options, res => { // console.log(res.statusCode);//返回状态码 // console.log(res.headers); res.setEncoding('utf-8') res.on('data', res => { console.log(res); })})req.end()
2、http.get()
http.get(options,callback),用来更简单的处理GET方式的请求,它是http.request的简化版本,唯一的区别在于http.get自动将请求方法设为GET请求,同时不需要手动调用req.end()。
const http = require('http')let options = { host: 'www.baidu.com'}let req = http.get(options, res => { res.setEncoding('utf-8') res.on('data', rs => { console.log(rs); })})
十一、path模块
用来处理路径问题。
1、normalize()方法
将路径转换成该系统环境中都认可的一种统一格式。
var path = require('path')let str = '/goods/classic/type/1'//将路径转换成该系统环境中都认可的一种统一格式let myPath = path.normalize(str)console.log(myPath);
2、join()方法
将两个或多个路径拼成一个绝对路径,并能识别其中的绝对路径和相对路径。
var path = require('path')let p1 = 'path1', p2 = 'path2/pp', p3 = 'path3'let myPath = path.join(p1, p2, p3)console.log(myPath);
3、resolve()方法
将一个路径或路径片段的序列解析成一个绝对路径。
let path = require('path')let myPath = path.resolve('path1', 'path2', 'a/b/c')console.log(myPath);
4、parse()方法
返回一个对象,对象的属性表示path的元素。
let path=require('path')let obj=path.parse('/path1/path2/a/b/c/temp.txt')console.log(obj);
十二、URL模块
用于解析和处理URL字符串,提供了三个方法:
parse:通过此方法,我们可以轻松获取URL中详细的某一部分数据(例如原始url) format:与parse方法相反,通过此方法我们可将url对象轻松转换成url字符串 resolve:通过此方法,我们可以轻松获得当前目录的绝对路径。1、 parse()方法
parse方法将URL解析成以下几部分: href:原始url protocal:url协议 host:主机 host中又包含以下信息: auth:用户认证 port:端口 hostname:主机名 pathname:跟在host之后的整个文件路径 search:url中HTTP GET信息,包含了? query:跟search类似,不包含? hash:片段部分,也就是URL#之后的部分const url=require('url')let myurl = 'http://www.lovehou.com/about/details?info=aaaaaaaaa&type=info#about';let parseUrl=url.parse(myurl)console.log(parseUrl);
2、format()方法
把对象转换成url字符串。
const url = require('url');let obj = { protocol: 'http:', slashes: true, auth: null, host: 'www.nodejs.org', port: null, hostname: 'www.nodejs.org', hash: '#about', search: '?with=query&tag=that', query: 'with=query&tag=that', pathname: '/some/url/', path: '/some/url/?with=query&tag=that', href: 'http://www.nodejs.org/some/url/?with=query&tag=that#about'}let parseUrl = url.format(obj);console.log(parseUrl);
3、resolve()方法
返回从根目录开始到当前目录的一个绝对路径的url。
var url = require('url');var url1 = url.resolve('/one/two/three', 'four'); // '/one/two/four'console.log(url1);var url2 = url.resolve('http://example.com/', '/one'); // 'http://example.com/one'console.log(url2);var url3 = url.resolve('http://example.com/one', '/two'); // 'http://example.com/two'console.log(url3);
转载地址:http://wbvrn.baihongyu.com/