目录
1. 分层模型
一般分为五层
- 应用层 HTTP、FTP、DNS、SMTP、POP3
- 传输层 TCP、UDP
- 网络层 IP、路由器
- 数据链路层 MAC、交换机
- 物理层 光纤、双绞线、同轴电路、集线器
分层的其他标准
数据的传输
2. URL
URL(uniform resource locator,统一资源定位符)用于定位网络服务
http://baidu.com:80/news/datail?id=1?t1
协议://域名:端口号/路径?query参数#
注意:
- 当协议是 http 端口号为 80 时,端口号可以省略
- 当协议是 https 端口号为 443 时,端口号可以省略
- 协议://域名:端口号 是必填的
- localhost 、127.0.0.0 是 本地地址
- 0.0.0.0 是回环地址 :
在不同场景有不同意思
1.在服务器:表示本机任意ip地址
例:比如本机有内网、外网俩个ip,那么当服务A开通0.0.0.0的访问后,通过俩个ip都可以访问服务A
比如:3306端口监听在127.0.0.1,只有本机客户端可以访问,其他服务器无法访问;3306端口如果监听在0.0.0.0上,如果没有端口限制,那么其他服务器则可以连接该服务器的该端口。
2.在路由中:0.0.0.0表示默认路由,既当路由表中没有找到完全匹配的路由时所对应的路由。表示”任意IPV4主机“
3.当一台主机还没分配io地址到时候,用于表示主机本身
3. HTTP
传递消息的模式 -- 传递消息的格式
HTTP 使用一种极为简单的传递模式 [请求-响应]模式 ,发起者为客户端,接受者为服务器, 一次 [请求-响应] 完成后, 一次交互结束。
·
传递消息的格式
请求行
请求头
请求体
请求头 - Content-Type
Content-Type标注了附带的请求体是什么格式
比如,请求体的数据为loginId:admin, loginPwd:123456,请求体可以用不同的格式发出
Content-Type: application/x-www-form-urlencoded
loginId=admin&loginPwd=123123
Content-Type: application/json
{ "loginId": "admin", "loginPwd": "123123" }
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryraPtlntBIqy4X2Ho
------WebKitFormBoundaryraPtlntBIqy4X2Ho
Content-Disposition: form-data; name="loginId"
admin
------WebKitFormBoundaryraPtlntBIqy4X2Ho
Content-Disposition: form-data; name="loginPwd"
123456
------WebKitFormBoundaryraPtlntBIqy4X2Ho--
响应码
响应码(状态码、消息码) 是响应行的一个数字
常见的响应码有:
常见的状态码有:
- 200 OK:一切正常。
- 301 Moved Permanently:资源已被永久重定向。
你的请求我收到了,但是呢,你要的东西不在这个地址了,我已经永远的把它移动到了一个新的地址,麻烦你取请求新的地址,地址我放到了响应头的Location中了
试试请求: www.douyutv.com
- 302 Found:资源已被临时重定向。
你的请求我收到了,但是呢,你要的东西不在这个地址了,我临时的把它移动到了一个新的地址,麻烦你取请求新的地址,地址我放到了请求头的Location中了
- 304 Not Modified:文档内容未被修改。
你的请求我收到了,你要的东西跟之前是一样的,没有任何的变化,所以我就不给你结果了,你自己就用以前的吧。啥?你没有缓存以前的内容,关我啥事
- 400 Bad Request:语义有误,当前请求无法被服务器理解。
你给我发的是个啥啊,我听都听不懂
- 403 Forbidden:服务器拒绝执行。
你的请求我已收到,但是我就是不给你东西
- 404 Not Found:资源不存在。
你的请求我收到了,但我没有你要的东西
- 500 Internal Server Error:服务器内部错误。
你的请求我已收到,但这道题我不会,解不出来,先睡了
响应头 - Content-Type
Content-Type标注了附带的响应体是什么格式
常见的值有:
- text/plain: 普通的纯文本
- text/html:html文档
- text/javascript 或 application/javascript:js代码
- text/css:css代码
- image/jpeg:jpg图片
- attachment:附件
- 其他MIME类型