URL
- 组成:URL由协议+域名(或ip)+端口号+路径+查询字符串+锚点
- 各部分的含义
- 协议:此处只介绍http协议和https协议:1. http(HyperText Transfer Protocol)是一个简单的请求-响应协议,基于TCP/IP协议进行数据传输 2. https(Hyper Text Transfer Protocol Secure)是基于HTTP协议,通过SSL或TLS提供加密处理数据、验证对方身份以及数据完整性保护
- DNS(Domain Name System):将域名与IP地址相互映射,其中一个域名可以对应多个ip地址,作用是为了均衡负载,一个ip地址也可以对应多个域名,即共享主机 在终端使用nsloopup可以查看域名对应的ip地址
域名:com(company),org(organization)顶级域名com,二级域名github.io,三级域名xxx.github.io,所以请注意www.xxx.com和xxx.com不一定是对应的一个公司
- 端口号:定义了一个设备提供了不同的服务,常用端口号:1.80端口提供http服务2.443端口提供https服务3. 21端口提供ftp服务;其中端口号一共有65535个,0~1023是提供给系统使用的,用户只有在拥有管理者权限才可以使用这1024个端口
- ip(Internet Protocol):作用:1.如何定位一台设备 2.如何封装数据报文与其他设备交流;特殊的ip地址有:1.
127.0.0.1表示自己 2.localhost通过hosts指定自己 3.0.0.0.0不表示任何设备,值得一提的是路由器一共有两个ip地址一个外网地址一个内网地址,内网内的设备可以相互访问但是只能通过路由器访问外网,同理外网的设备也必须通过路由器访问内网ping用来测试数据包通过ip协议是否到达特定主机,并且程序会按时间和成功响应的次数估算丢失数据包率(丢包率)和数据包往返时间,备注mac电脑的ping不会停止会一直持续,需要使用ctrl+c 停止
- 路径:指定请求的页面
- 查询字符串:指定同一个页面显示的不同内容
- 锚点:同一个内容的不同位置,值得一提的是锚点是不支持中文的,而且锚点也不会传给服务器
curl 发送http请求
curl -v http://www.baidu.com
- url会被curl工具重写,先请求DNS获取IP地址
- 进行TCP连接,连接成功,发送HTTP请求
- 请求内容
- 响应内容
- 响应结束,关闭TCP连接
- 结束