万维网(World Wide Web)
1990年,Tim Berners-Lee发明了www,一种适用于全世界的网络。主要包含三个概念
- URI(Uniform Resource Identifier),统一资源标识符,俗称网址,分为URL和URN,URL是定位符,URL是
- HTTP(Hyper Text Transfer Protocol),超文本传输协议,两个电脑之间传输内容的协议
- HTML,超级文本,主要用来做页面跳转
URL能让你访问一个页面,HTTP能让你下载这个页面,HTML能让你看懂这个页面
URL
统一资源定位符。形式为协议//域名/路径?查询参数#锚点
- 协议:HTTP,FTP,File,HTTPS,现在大部分网页使用http或https协议
- 去掉www的前缀,比如
baidu.com
就是一个域名,.com
即最后边为顶级域名,常见.com
商业机构,.org
非营利性组织,.gov
政府机构,.edu
教育及科研机构,.cn
中国,.us
美国等等 - 有时有的网站会使用子域名,比如
mail.qq.com
- 域名最后一个
/
到最后一个?
,是路径部分,#
后面就是锚部分,锚部分不包括在路径中
网站访问的过程
首先,我们访问一个网页会在浏览器中输入网址
1.浏览器根据域名(网址)找DNS解析成IP地址(服务器)
- 先在浏览器缓存中
- 本地缓存,hosts文件
- 路由器缓存
- ISP DNS缓存
- 根域名服务器
2.然后向这个IP地址发出HTTP请求
3.服务器根据请求向数据库查询数据并生成HTML返回给浏览器(HTTP响应)
-
MVC模型:model,view,controller
4.最终浏览器根据HTML生成我们能看懂的网页。
image
HTTP
请求
curl -s -v -H "A Header" -- "https://www.baidu.com"
GET
curl -X POST -s -v -H "A Header" -- "https://www.baidu.com"
POST
curl -X POST -d "somedata" -s -v -H "A Header" -- "https://www.baidu.com"
POST "somedata"
curl的请求格式如下
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 要上传的数据
- 动词有GET,POST,PUT,PATCH,DELETE,HEAD,OPTIONS等
- 这里的路径不包括锚点
- 没有写路径,则默认
/
- 第2部分的Content-Type标注了第4部分的格式,遵循MIME规范
用chrome发请求
1.打开network
2.地址栏输入网址
3.network中查看request,点击view source
4.查看请求的前3部分,如果有第4部分,在FormData或Payload可以看到
响应
curl响应格式如下
1 协议/版本号 状态码 状态解释
2 Key1: value1
2 Key2: value2
2 Content-Length: 17931
2 Content-Type: text/html
3
4 要下载的内容
- 状态码是服务器对浏览器说的话
- 1xx 请求已被接受,需要继续处理
- 2xx 成功
- 3xx 需要客户端采取进一步的操作才能完成请求
- 4xx 客户端可能出错了
- 5xx 服务器错误
- 第2部分的Content-Type标注了第4部分的格式,并遵循MIME规范
用chrome查看响应
1.打开network
2.地址栏输入网址
3.network中选中第一个响应,查看Response Headers,点击view source
4.可以看到响应的前3部分
5.查看Response或者Preview,可以看到响应的第4部分
网友评论