HTTP原理
超文本传输协议(HyperText Transfer Protocol 缩写:HTTP)是一种用于分布式、协作式和超媒体信息系统的应用层协议。
HTTP(HyperText Transfer Protocol超文本传输协议),是一个基于请求与响应,无状态的,应用层的协议常基于TCP/IP协议传输数据·互联网上应用最为广泛的一种网络协议,所有的WWW文件都必须遵守这个标准
设计HTTP的初表是为了提供一种发布和接收HTML页面的方法。
HTTP工作流程
-
客户端通过TCP三次握手与服务器建立连接。
-
TCP建立连接成功后,向服务器发送HTTP请求
-
服务器收到HTTP请求后,向客户端发送http响应
-
客户端通过TCP四次断开服务器断开TCP连接
什么是B/S、C/S架构
C/S(Client/Server)客户机和服务器结构
B/S(Browser/Server)浏览器和服务器结构
HTTP不同版本的区别
在HTTP 0.9和1.0中,TCP连线在每一次请求/回应对之后关闭。
在HTTP 1.1中,引入了保持连线的机制,一个连接可以重复在多个请求/回应使用。持续连线的方式可以大减少等待时间,因为在发出第一个请求后,双方不需要重新运行TCP握手程序
URL统一资源定位符

协议方案名:http,ftp,fle,mailto,telnet,ldap...
登录信息:如果网页需要认证时·需要填写该参数·所以是可选项。
服务器地址:可以使IP地址形式,也可以是能被DNS解析为IP地址的域名形式。
端口号:指定服务器连接的端口号,也选填,不填则指向本协议的默认端口号。
带层次的文件路径:获取资源在服务器中的具体地址。
查询宇符串:针对已指定路径的资源·可使用查询字符串来获取想要的参数,此项也是可选项。
片段标识符:信息片段字符串·用来标记已获取资源中的子资源(在文档中的某个位置)。
统一资源标志符(URI)
URl(Universal Resource ldentifier 统一资源标志符),用来标识抽象或物理资源的一个紧凑字符串。
HTTP是基于客户端/服务端(C/S)的架构模型,通过一个可靠的链接来交换信息,是一个无状态的请求/响应协议。
HTTP使用统一资源标识符(Uniform Resource ldentifiers, URl)来传输数据和建立连接。
URI和URL的区别:URL是URI的一个子集。
服务器响应消息
HTTP响应报文:在接收和解释请求消息后服务器返回一个HTTP响应消息。
HTTP响应也由四个部分组成,分别是
- 状态行
- 消息报头
- 空行
- 响应正文
状态码
状态代码有三位数字组成,第一个数字定义了响应的类别,且有五种可能取值
- 1xx:指示信息--请求已被服务器接收,继续处理
- 2xx:成功--请求已成功被服务器接收、理解、并接受
- 3xx重定向--需要后续操作才能完成这一请求
- 4xx客户端错误--请求有语法错误或请求无法实现
- 5xx服务端错误--服务器在处理某个正确请求时发生错误
常见状态码
200 OK //客户端请求成功
400 Bad Request //客户端请求有语法错误,不能被服务器所理解
401 Unauthorized //请求未经授权,这个状态代码必须和 WWW-Authenticate 报头域一起使用
403 Forbidden//服务器收到请求,但是拒绝提供服务
404 Not Found//请求资源不存在,eg:输入了错误的URL
500 Internal Server Error //服务器发生不可预期的错误
503 Server Unavailable //服务器当前不能处理客户端的请求,一段时间后可能恢复正常
POST
首先生成一个 boundary 用于分割不同的字段,为了避免与正文内容重复,boundary 很长很复杂。然后 Content-Type 里指明了数据是以 mutipart/form-data 来编码,本次请求的 boundary 是什么内容。消息主体里按照字段个数又分为多个结构类似的部分,每部分都是以--boundary 开始,紧接着内容描述信息然后是回车,最后是字段具体内容(文本或二进制)如果传输的是文件,还要包含文件名和文件类型信息。消息主体最后以 --boundary--标示结束。
HTTPS简介
全称:Hyper TextyTransfer Protocol over Secure Socket Layer·就是HTTP的安全版·再通俗点就是身披SSL外壳的HTTP。
HTTPS = HTTP+SSL/TLS
HTTPS是一种通过计算机网络进行安全通信的传输协议,经由HTTP进行通信,利用SSLTLS建立全信道,加密数据包·HTTPS使用的主要目
的是提供对网站服务器的身份认证,同时保护交换数据的隐私与完整性。
HTTPS特点
- 内容加密采用混合加密技术,中间者无法直接查看明文内容验证身份:
- 通过证书认证客户端访问的是自己的服务器保护数据完整性:
- 防止传输的内容被中间人冒充或者篡改