一、 HTPP
协议
1、概念
HTTP(hypertext transport protocol)
协议;中文叫超文本传输协议
是一种基于TCP/IP
的应用层通信协议
这个协议详细规定了 浏览器
和万维网 服务器
之间互相通信的规则。
协议中主要规定了两个方面的内容
- 客户端:用来向服务器发送数据,可以被称之为请求报文
- 服务端:向客户端返回数据,可以被称之为响应报文
报文:可以简单理解为就是一堆字符串
示例:
请求行:POST http://www.baidu.com:80/index.html?a=100&b=200#logo HTTP/1.1
请求头:HOST: http:// www.baidu.com
...
空格:
请求体:{"keywords":"手机","price":2000}
2、请求报文的组成
- 请求行
- 请求头
- 空行
- 请求体
1. HTTP
的请求行
- 请求方法(
get
、post
、put
、delete
等) - 请求
URL
(统一资源定位器) 例如:http://www.baidu.com:80/index.html?a=100&b=200#logo
http:
协议(https
、ftp
、ssh
等)www.baidu.com
域名80
端口号/index.html
路径a=100&b=200
查询字符串#logo
哈希(锚点链接)
HTTP
协议版本号
2. HTTP
请求头
- 格式:『头名:头值』
- 常见的请求头有
请求头 | 解释 |
---|---|
Host |
主机名 |
Connection |
连接的设置 keep-alive (保持连接);close (关闭连接) |
Cache-Control |
缓存控制 max-age = 0 (没有缓存) |
Upgrade-Insecure-Requests |
将网页中的http 请求转化为https 请求(很少用)老网站升级 |
User-Agent |
用户代理,客户端字符串标识,服务器可以通过这个标识来识别这个请求来自哪个客户端 ,一般在PC 端和手机端的区分 |
Accept |
设置浏览器接收的数据类型 |
Accept-Encoding |
设置接收的压缩方式 |
Accept-Language |
设置接收的语言 q=0.7 为喜好系数,满分为1 |
Cookie |
储存 |
3. HTTP
请求体
- 请求体内容的格式是非常灵活的,
(可以是空)==>
GET
请求, (也可以是字符串,还可以是JSON
)===>POST
请求 例如:- 字符串:
keywords=手机&price=2000
JSON
:{"keywords":"手机","price":2000}
- 字符串:
3、响应报文的组成
- 响应行
- 响应头
- 空行
- 响应体
示例:
响应行:HTTP/1.1 200 OK
响应头:Cache-Control: private
...
空行
响应体:
1. 响应行
HTTP/1.1
:HTTP
协议版本号200
:响应状态码404 Not Found 500 Internal Server Error
- 还有一些状态码,参考:https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Status
OK
:响应状态描述- 响应状态码和响应字符串关系是一一对应的。
2. 响应头
Cache-Control:缓存控制 private 私有的,只允许客户端缓存数据
Connection 链接设置
Content-Type:text/html;charset=utf-8 设置响应体的数据类型以及字符集,响应体为html,字符集
utf-8
Content-Length:响应体的长度,单位为字节
3. 响应体
响应体内容的类型是非常灵活的,常见的类型有 HTML、CSS、JS、图片、JSON
二、IP
IP
本身是一个数字标识 (决定设备)IP
用来标志网络设备,实现设备间通信IP
的分类:
类型 | 说明 |
---|---|
本机回环IP 地址 |
127.0.0.1~127.255.255.254 |
196.168.0.0~192.168.255.255 | |
局域网IP (私网IP ) |
127.16.0.0~172.31.255.255 |
10.0.0.0~10.255.255.255 | |
广域网IP |
除上述之外 |
- 端口:(决定程序)
- 应用程序的数字标识
- 主要作用是实现了不同主机应用程序之间的通信