1. 前言
1.1 简介
HTTP 协议(Hyper Text Transfer Protocol)是超文本传输协议,是从服务器传输超文本到本地浏览器的传送协议, 是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)。
1.2 辅助工具
- Postman:https://www.postman.com/downloads/
- openssl: https://www.openssl.org/source/
2. http工作原理
HTTP工作结构
- 客户端:浏览器作为HTTP客户端,通过URL向HTTP服务端即WEB服务器发送所有请求。
- 服务端:Web服务器根据接收到的请求后,向客户端发送响应信息。
- Web服务器有:Nginx,Apache服务器,IIS服务器(Internet Information Services)等。HTTP默认端口号为80,也可以改为其他端口。
HTTP注意事项
- HTTP是无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。
- HTTP是媒体独立的:只要客户端和服务器知道如何处理的数据内容,任何类型的数据都可以通过HTTP发送。客户端以及服务器指定使用适合的MIME-type内容类型。
- HTTP是无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息则它必须重传。
HTTP请求方法
序号 | 方法 | 说明 | 描述 |
---|---|---|---|
1 | GET | 获取资源 | 请求指定的页面信息,并返回实体主体。 |
2 | POST | 传输实体主体 | 向指定资源提交数据进行处理请求,例如提交表单或上传文件。 数据被包含再请求体中,POST请求可能导致新资源的建立或已有资源的修改。 |
3 | HEAD | 获取报文首部 | 类似于get请求,只不过返回的响应中没有具体内容,用于获取报头 |
4 | PUT | 传输文件 | 从客户端向服务端传送的数据取代指定的文档内容 |
5 | DELETE | 删除文件 | 请求服务器删除指定的页面 |
6 | CONNECT | 要求用隧道协议连接代理 | HTTP1.1协议中预留给能够连接为管道方式的代理服务器 |
7 | OPTIONS | 访问支持的方法 | 允许客户端查看服务器性能 |
8 | TRACE | 追踪路径 | 回显服务器收到的请求,主要用于测试或诊断 |
9 | UNLINK | 建立和资源之间的联系 | |
10 | UNLINK | 断开连接 |
3. https
https 和 http 的区别
SSL是网络加密传输协议,是支持在网络服务器(主机)与网页浏览器(客户端)间建立加密连接的标准技术。当网站安装SSL数字证书之后,可通过https访问网站,浏览器地址栏显示“锁的标识”,点击锁型标识显示单位/个人认证信息,这种证书也是类似于驾驶证、护照和营业执照的电子副本,因为配置在服务器上,也称为SSL服务器证书。
- https协议需要到ca申请证书,一般免费证书很少,需要交费。
- http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。
- http和https使用的是完全不同的连接方式用的端口也不一样,前者是80,后者是443。
- http的连接很简单,是无状态的 。
- https协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比http协议安全。
3. C#应用实例
参考文献: