美文网首页
2018-12-15\网络与IP&node js服务器

2018-12-15\网络与IP&node js服务器

作者: 阿九_beta | 来源:发表于2018-12-15 17:45 被阅读0次

HTTP与TCP 协议

HTTP 协议的底层其实是由 TCP 协议和 IP 协议(简称 TCP/IP)构建的。关于TCP 协议(传输控制协议),有两个相关知识点需要了解:

  1. tcp与udp的区别
    [博客]https://www.nowcoder.com/questionTerminal/63c8b45c91a544bd8febc1f1ff02e3b5?toCommentId=73766
    答:tcp可靠(可靠指的是了解是谁收到客户端请求)、面向连接,相对udp较慢;udp不可靠,不面向连接、相对tcp较快。
    2.tcp的三次握手指的是什么 [博客]https://github.com/jawil/blog/issues/14
    答:每次建立连接前,客户端和服务端之前都要进行三次对话才开始正式传输内容:
  • 客户端:我要连接你了,可以吗
  • 服务端:嗯,我准备好了,连接我吧
  • 客户端:那我连接你咯。
  • (开始后面步骤)

IP

IP包括内网 IP 和外网 IP,除此之外,还有两个特别特殊的 IP,就是本地 IP:127.0.0.1。本地 IP 永远表示设备自己。

还有一个特别特殊的 IP:0.0.0.0,它不表示任何设备。这个 IP 不同的地方含义不同,以后我们会用到,用到的时候再说意思。

端口

你想要访问一个设备(前提是你使用的是 TCP 或 UDP 协议。还记得吗,HTTP 就使用了 TCP),只指定 IP 是不够的,还必须指定端口(Port)。
端口其实就是一个编号,并不是一种硬件。
一个服务器(硬件)不一定只提供一种服务,比如一个服务器既提供 HTTP 服务,又提供 FTP 服务,还提供 SMTP 服务(邮件服务),那么只用一个 IP 是无法告诉服务器你想要使用哪种服务。
所以这里有一个重要的原则:一个端口对应一个服务。

使用node.js写服务器

使用node.js,可以完成一个服务器的demo来理解客户端(这里就是浏览器啦~)和服务器的交互(发送请求和响应)

代码的连接在这里:[node.js服务器]。。。。。。

在终端上执行代码就启动了这个服务器:

node server-1.js 8888
  1. 客户端发送请求:
    在浏览器里输入服务器地址 localhost:8080/index?name=yss,服务器收到请求后会根据server-1.js中下面的代码给出反馈:
console.log('ss说:得到http路径\n' + path)  
console.log('ss说:查询字符串的路径\n' + query)
console.log('ss说:含查询字符串的路径\n' + pathWithQuery)

2.服务器的反馈
下面这段代码,服务器会根据.setheader里的content type要求,来解析response.write中的内容,最后会反馈到页面上形成网页。

if(path === '/index'){
    response.statusCode = 200
    response.setHeader('Content-Type', 'text/html; charset=utf-8')
    response.write('<!DOCTYPE html>\n<html>' + '<head><link rel="stylesheet" href="/style"></head>' + '<body><h1>我是html</h1>' + '<script src="/script"></script>' +'</body></html>')
    response.end()
  }else if(path === '/style'){
    response.statusCode = 200
    response.setHeader('Content-Type', 'text/css; charset=utf-8')
    response.write('body{background: red;}')
    response.end()    
  }else if(path === '/script'){
    response.statusCode = 200
    response.setHeader('Content-Type', 'text/javascript; charset=utf-8')
    response.write('Alert(“我是js执行的”)')
    response.end()    
  }
  else{
    response.statusCode = 404
    response.setHeader('Content-Type', 'text/html;charset=utf-8')
    response.write('呜呜呜')
    response.end()
  }

相关文章

  • 2018-12-15\网络与IP&node js服务器

    HTTP与TCP 协议 HTTP 协议的底层其实是由 TCP 协议和 IP 协议(简称 TCP/IP)构建的。关于...

  • Node.js 网络开发

    Node.js 的网络通信模块: 构建 TCP 服务器 使用 Node.js 创建 TCP 服务器 同上 除了 l...

  • HTTP入门(三):使用Nodo.js脚本实现简易服务器

    HTTP入门(三):使用Nodo.js脚本实现简易服务器 本文通过简单的Node.js脚本模拟服务器请求与响应原理...

  • node.js

    一、什么是node.js node.js是编写高性能网络服务器的JavaScript工具包,让javscript运...

  • Node.js 7.7.0 (Current) 发布了

    Node.js 7.7.0 (Current) 发布了,Node.js 是一套用来编写高性能网络服务器的 Java...

  • Node.js入门

    Node.js与php不同之处: Node.js组成 创建Node.js应用步骤: 步骤1:创建服务器 NPM使用...

  • 今日分享

    焦点网络初级11期(信阳)刘鸿梅 2018-12-15 周六 坚持原创分享第130天

  • Nodejs学习笔记-Nodejs介绍

    什么是Node.js 编写高性能网络服务器的JavaScript工具包(用js开发服务端程序)单线程、异步、事件驱...

  • ionic 爬坑姿势指南

    infiniteScroll中发起返回空数据的无效的网络请求,会给服务器带来压力 event.js:183thro...

  • 测试知识笔记

    Web问题定位 打开firebug 查看服务器响应数据(网络-XHR) 查看元素源码 查看JS Web兼容性测试 ...

网友评论

      本文标题:2018-12-15\网络与IP&node js服务器

      本文链接:https://www.haomeiwen.com/subject/equahqtx.html