URL初探

266 阅读3分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 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地址。 image.png

URL 统一资源定位符

URL:协议+域名或IP+端口号+路径+查询字符串+锚点

image.png

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.com
  • curl -s -v --http://www.baidu.com

步骤:url首先被curl工具重写,让后请求DNS获得IP,先进性TCP链接,TCP链接成功之后,开始发送HTTP请求,请求内容与响应内容结束后,关闭TCP链接image.png

用Node.js读取请求

读取请求动词

request.method

读取路径

request.url路径,带查询参数
path纯路径,不带查询参数
query只有查询参数

读取请求头

request.headers['Accept']

用Node.js设置响应

设置响应状态码

response.statusCode=200

设置响应头

response.setHeader('Content-Type','text/html');

设置响应体

response.write('内容')
可追加内容