Node.js Error: Protocol “https:“ not supported. Expected “http:“

const http = require('http')
const https = require('https')


let urlCdn = "https://baidu.com"    
let urlObj = new URL(urlCdn)
const client = urlObj.protocol == 'https:' ? https : http
console.log(urlObj.protocol)

    client.get(urlCdn, async (httpRes) => {
      
    })

Node的http模块:使用node创建htto服务器(重点)
1、web服务器:网站服务器,主要提供网上信息的浏览服务

2、web资源

(1)静态资源:服务器没有修改的,客户端每次请求的结果都是一样的资源。(CSS、image等)

(2)动态资源:经过服务器处理的资源信息

3、HTTP协议:HyperText Transfer Protocol,超文本传输协议。规范了客户端和服务器之间进行交互的数据格式。是基于’请求‘--’响应‘的协议

(1)请求(request):客户端(浏览器)向服务器发送信息(发送请求)--http请求

(2)响应(response):服务器接收到客户端的请求后做的响应--http响应

(3)内容:

基本信息:请求地址(url)、请求方式(get/post)、请求-响应是否完成、路由地址(ip地址)

响应头形象:http协议的版本号、200是状态码(表示请求-响应已经完成)、响应文本的格式

请求头信息:User-Agent(客户端浏览器的内核)、Host(请求的服务器的地址和端口号)、Accept发送请求的文本格式

(4)状态码:不同的状态码反应了请求--响应过程的完成情况

200:请求-响应的过程已经成功完成

204:请求-响应已经完成,但是没有响应数据

以3开头的状态码表示页面重定向了

404:客户端请求的资源不存在

403:服务器拒绝请求

400:请求的语法错误

500:服务器错误,无法响应请求

503:服务器无法使用

(5)响应信息的格式:采用‘大类型/具体类型’的方式定义

text/plain:普通文本格式

text/html:html文件

text/css:css文件

application/javascript:js文件

4、node中http模块的应用:

(1)导入:require(‘http’)

(2)创建服务器:http.createServer(function(){ }),返回一个http的服务器对象

(3)启动服务器监听:listen(端口号,服务器地址、callback)

5、在服务器端获取客户端请求数据的方式 :是通过请求对象request来完成的

(1)req.method:获取客户端的请求方式

(2)req.url:获取客户端的请求地址

(3)req.url.query:获取的是客户端采用get方式向服务器发送的请求数据

get方式发送的请求数据:是拼接在url地址之后的

http://127.0.0.1:9000?userName=张三&age=25

‘?’:是url和请求参数(query)之间的分隔符

‘&’:是参数之间的分隔符

(4)req.body:获取的是客户端采用post方式向服务器发送的请求数据

post方式发送请求时:先将请求地址单独发送出去,然后将请求参数和页面的body绑定在一起进行发送

在node的http服务器端需要使用querystring模块对客户端发送的body信息进行转换后才能得到请求参数
 

参考链接:

https://stackoverflow.com/questions/34147372/node-js-error-protocol-https-not-supported-expected-http

http://chat.xutongbao.top/

 

你可能感兴趣的:(web前端,node.js,http,网络协议)