持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第3天,点击查看活动详情
WWW=HTTP+HTML+URL
什么是IP?
全称是Internet Protocol,IP主要约定了两件事。其一。如何定位一台设备。其次,如何封装数据报文,用于和其他设备交流。
IP又可以分为外网IP和内网IP,外网IP通过网络运营商譬如电信,移动等租用宽带业务。通过路由器与电信的服务器链接,路由器就会获得一个外网IP,链接路由器的所有设备共用这个在互联网中的网络地址。内网IP是由路由器分配形成的。
路由器的功能
- 路由器有两个IP,一个是内网IP,一个是外网IP。
- 内网中的设备可以互相访问,但是不能直接访问外网。
- 内网中的设备要访问外网,就必须经过路由器中转。
- 外网中的设备可以互相访问,但是无法直接访问内网。
- 外网设备要想把内容送到内网,也必须经过路由器。
- 路由器是内网与外网相互交流的桥梁,所以有时候路由器也叫做网关。
几个特殊的IP
- 127.0.0.1 表示自己
- localhost 通过host指定为自己
- 0.0.0.0 不表示任何设备
端口port
一台服务器可以提供不同的服务;(一共有65535个端口)
提供HTTP服务一般使用80端口;
提供HTTPS服务一般使用443端口;
提供FTP服务一般使用21端口
域名
通过PING域名可以获得相应的IP。
- 一个域名可以对应不同的IP
这个叫做均衡负载,防止一台服务器扛不住 - 一个IP可以对应不同域名
这个叫做共享主机,防止资源浪费。
通过nslookup命令,获得访问域名的所有IP地址。
URL 统一资源定位符
URL:协议+域名或IP+端口号+路径+查询字符串+锚点
HTTP基础概念
请求
请求动词 路径加查询参数 协议名/版本
Host:域名或IP
Accept:text/html
Content-Type:请求体的格式
回车
请求体(上传内容)
细节
三部分:请求行、请求头、请求体
请求的动词有GET/POST/PUT/PATCH/DELETE等
请求体在GET请求内一般为空
规范文档:RFC 2612
响应
协议名/版本 状态码 状态码字符串
Content-Type:响应体的格式
回车
响应体(也就是下载内容)
细节
三部分:状态行、响应头、响应体
常见的状态码
curl命令
用curl构造请求
curl -v http://127.0.0.1:8080
设置请求动词
-X POST
注意大小写
设置路径和查询参数
直接在url后面加
设置请求头
-H'Name:Value'或者--header'Name:Value'
设置请求体
-d '内容'或者--data '内容'
用curl发出HTTP请求
curl -v http://www.baidu.comcurl -s -v --http://www.baidu.com
步骤:url首先被curl工具重写,让后请求DNS获得IP,先进性TCP链接,TCP链接成功之后,开始发送HTTP请求,请求内容与响应内容结束后,关闭TCP链接。
用Node.js读取请求
读取请求动词
request.method
读取路径
request.url路径,带查询参数
path纯路径,不带查询参数
query只有查询参数
读取请求头
request.headers['Accept']
用Node.js设置响应
设置响应状态码
response.statusCode=200
设置响应头
response.setHeader('Content-Type','text/html');
设置响应体
response.write('内容')
可追加内容