关于HTTP
HTTP是什么?
维基百科 对HTTP的介绍如下
超文本传输协议(英语:HyperText Transfer Protocol,缩写:HTTP)是一种用于分布式、协作式和超媒体信息系统的应用层协议[1]。HTTP是万维网的数据通信的基础。
URL 格式
可以看看下面的一个URL例子:
http://www.gov.cn/xinwen/2020-05/05/content_5508775.htm
其中 URL 格式可以分为3个部分
协议类型://服务器地址(和端⼝号)/路径(Path)
协议类型 : http
服务器地址(和端⼝号) : www.gov.cn
路径 : xinwen/2020-05/05/content_5508775.htm
HTTP报文
在chrome中使用 F12 可以查看请求记录。
这里访问
http://www.gov.cn/xinwen/2020-05/05/content_5508775.htm
的请求和响应报文信息如下:
General:
Request URL: http://www.gov.cn/xinwen/2020-05/05/content_5508775.htm
Request Method: GET // 请求方法
Status Code: 200 OK // 响应状态码 200 和 响应状态信息 OK
Remote Address: 183.47.233.6:80
Referrer Policy: no-referrer-when-downgrade
Response Headers:
Accept-Ranges: bytes
Connection: keep-alive
Content-Type: text/html
Date: Tue, 05 May 2020 05:45:23 GMT
Server: Apache
Transfer-Encoding: chunked
X-Cache: HIT from BC13_dx-guangdong-jiangmen-7-cache-1(baishan)
X-Powered-By: ModLayout/5.1
X-Ser: BC233_dx-lt-shandong-qingdao-2-cache-8, BC13_dx-guangdong-jiangmen-7-cache-1
Request Method 请求⽅法
1. GET
- 一般用于获取资源
- 不需要发送body数据
- 不对服务器数据进行修改
2. POST
- 对服务器数据进行修改(增加)
- 需要发送body数据
3. PUT
- 修改服务器资源使用
- 发送给服务器的数据在body中
4. DELETE
- 用于删除服务器资源
- 不需要发送body数据
Request Status Code 状态码
- 1xx:临时性消息。如:100 (继续发送)、101(正在切换协议)
- 2xx:成功。最典型的是 200(OK)201(创建成功)
- 3xx:重定向。如 301(永久移动)、302(暂时移动)、304(内容未改变)
- 4xx:客户端错误。如 400(客户端请求错误)、401(认证失败)、403(被禁⽌)、404(找不到内容)
- 5xx:服务器错误。如 500(服务器内部错误)
报文Header 类型
Host
⽬标主机
Content-Type
- text/html :请求web页面时候返回类型。
- x-www-form-urlencoded: Web ⻚⾯纯⽂本表单的提交⽅式
- multitype/form-data: Web ⻚⾯含有⼆进制⽂件时的提交⽅式
- application/json:body为json数据。
- image/jpeg: body是图片文件
- application/zip:body是压缩文件
Content-Length
body中数据长度
Location
指定重定向的⽬标 URL
User-Agent
⽤户代理,即是谁实际发送请求、接受响应的,例如⼿机浏览器、某款⼿机 App
Range / Accept-Range
Accept-Range: bytes
响应报⽂中出现,表示服务器⽀持按字节来取范围数据
Range: bytes=<start>-<end>
请求报⽂中出现,表示要取哪段数据
Content-Range:<start>-<end>/total
响应报⽂中出现,表示发送的是哪段数据
作⽤:断点续传、多线程下载
关于HTTPS
HTTPS 是在 HTTP 的基础上,增加一个安全层,用于保障HTTP的加密传输。
HTTP over SSL (Secure Socket Layer)
TLS (Transport Layer Secure)
TCP/IP 协议族
为了解决在现实环境中的网络不稳定情况,网络传输进行了分层设计, 其中使用到的协议,统称 TCP/IP 协议族。
- Application Layer 应⽤层 : HTTP 、FTP 、 DNS 协议
- Transport Layer 传输层:TCP、UDP (主要进行数据的分块和跟踪)
- Internet Layer ⽹络层:IP (主要进行数据的传输)
- Link Layer 数据链路层:以太⽹、Wi-Fi
HTTPS 通信大概流程
- 客户端发起HTTPS连接请求
- 服务器发回证书
- 客户端校验证书
- 客户端信任服务器后,协商对称加密密钥
- 使用对称密钥开始通信
END!
网友评论