http与https的详细介绍

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特点

  • 内容加密采用混合加密技术,中间者无法直接查看明文内容验证身份:
  • 通过证书认证客户端访问的是自己的服务器保护数据完整性:
  • 防止传输的内容被中间人冒充或者篡改
相关推荐
企业通信技术笔记15 小时前
企业IM内外网隔离部署:DNS、证书、WebSocket与跨网接口设计
websocket·网络协议·架构·php·信息与通信
流烟默17 小时前
HTTP 连接管理技术梳理:JDK KeepAliveCache 机制与池化选型
java·网络协议·http
Java小白笔记17 小时前
FlClash TUN 栈模式选择与验证指南
网络·网络协议
清水白石00818 小时前
ThreadPoolExecutor 线程越多越快?从 30ms HTTP 调用讲透并发数、连接池与背压
网络·网络协议·http
IT小白杨18 小时前
eBay多账号如何应对关联判定:主体、收款、IP、环境四层配置清单一次讲清
java·网络·网络协议·tcp/ip·自动化·指纹浏览器
隐擎fox19 小时前
网络传输安全剖析:WebRTC 本地真实 IP 泄漏机制(STUN/TURN)与 Python 防护检测实战
网络·网络协议·tcp/ip·安全·webrtc
为思念酝酿的痛20 小时前
应用层协议HTTP
网络·网络协议·http
薛之谦_1 天前
国际SSL证书与国密SSL证书:专业视角下的全面解读
网络·网络协议·ssl
Wang's Blog1 天前
Java框架快速入门: Spring Security+OAuth2之HTTP请求结构与认证基础
java·spring·http
Zenova EdgeOS1 天前
C++ 工业边缘 libcurl HTTP 客户端实战
开发语言·c++·网络协议·边缘计算