初识万维网
URI
统一资源标识符(英语:Uniform Resource Identifier,或URI)是一个用于标识某一互联网资源名称的字符串。
URI可被视为定位符(URL),名称(URN)或两者兼备。统一资源名(URN)如同一个人的名称,而统一资源定位符(URL)代表一个人的住址。换言之,URN定义某事物的身份,而URL提供查找该事物的方法。
URL常见组成
协议+域名+路径+查询参数+锚点
例子
URL常见组成
HTTP //俩个电脑之间传输内容的协议
HTML //超级文本,主要用来做页面跳转
URL--让你访问一个页面
http--让你下载这个页面
HTML--看懂这个页面
URN唯一确定某种事物,通过唯一编号确定一个资源
URL唯一确定的某地址,通过确定位置确定一个资源
锚点
指定网页结果中的指定的某个结果
URL语法(截图来自CSDN)
可以用Java中对URI的操作类得到
域名系统
域名baidu.com 和 www.baidu.com 不是同一域名,共有一个二级域名
.com .cn .tt 等是顶级域名
baidu.com中baidu是二级域名
www.baidu.com 中 www 是三级域名
DNS
D 域 N 名 S 系统
Domain Name System,域名系统。作用是负责解析域名和IP。
地址栏里输入网址,先从本机的hosts文件中寻找ip,如果没有则从DNS服务商那边解析ip,DNS服务商找到最近的ip返还给用户,然后浏览器通过真实ip上网。
在终端用命令nslookup可以查询目标网址ip
nslookup 网址//询问目标网址ip
nslookup查询结果ping 网址//Ping是一个TCP/IP工具,主要的功能是用来检测网络的连通情况和分析网络速度。
http协议
电脑上0-2048端口做指定服务
21端口用于FTP下载
ftps是443端口
1080端口是代理服务器端口
3306端口是MySQL
80端口服务于http协议
浏览器上网流程
浏览器复制发起请求
服务器在80端口接受请求
服务器负责返回内容(响应)
浏览器复制下载响应内容
http协议复制知道浏览器和服务器的沟通细则
curl命令
curl是一个利用URL规则在命令行下工作的文件传输工具
本次使用curl主要是为了显示http协议结构想了解更多命令curl可以看这篇文章
http协议
请求格式是:
1 动词 路径 协议/版本
2 Key1: value1
2 Key2: value2
2 Key3: value3
2 Content-Type: application/x-www-form-urlencoded
2 Host: www.baidu.com
2 User-Agent: curl/7.54.0
3
4 要上传的数据
请求最多包含四部分,最少包含三部分。(也就是说第四部分可以为空)
第三部分永远都是一个回车(\n)
动词有 GET POST PUT PATCH DELETE HEAD OPTIONS 等
PUT和PATCH都是更新的意思,PUT是全部更新,PATCH部分更新
delete是删除
这里的路径包括「查询参数」,但不包括「锚点」
如果你没有写路径,那么路径默认为 /
第 2 部分中的 Content-Type 标注了第 4 部分的格式
使用chrome浏览器查看请求格式
1,点击鼠标右键点击检查,选中network,在地址栏里输入网址回车
2,请求就会出现
3,选中其中一个get请求
出现符合http协议的请求数据
Host 请求的域名
User-Agent 浏览器端浏览器型号和版本
Accept 可接受的内容类型
Accept-Language 语言
Accept-Encoding 可接受的压缩类型 gzip,deflate
Accept-Charset 可接受的内容编码 UTF-8,*
响应的格式
1 协议/版本号 状态码 状态解释
2 Key1: value1
2 Key2: value2
2 Content-Length: 17931
2 Content-Type: text/html
3
4 要下载的内容
在上图中的Response Headers为响应头,同样点击view source
Date 服务器端时间
Server 服务器端的服务器软件 Apache/2.2.6
Etag 文件标识符
Content-Encoding传送启用了GZIP压缩 gzip
Content-Length 内容长度
Content-Type 内容类型
HTTP状态码
1XX-信息类(不常用),表示收到Web浏览器请求,正在进一步的处理中;
2XX-成功类,表示用户请求被正确接收,理解和处理例如:200 OK;
3XX - 重定向类,表示请求没有成功,客户必须采取进一步的动作;
4XX - 客户端错误,表示客户端提交的请求有错误 例如:404 NOT Found,意味着请求中所引用的文档不存在;
5XX - 服务器错误,表示服务器不能完成对请求的处理:如 500;
更多状态码详解请看这篇文章