初识HTTP协议

本文介绍了HTTP协议的基本概念,包括URL的组成、HTTP协议的格式,以及HTTP 1.0、1.1、2.0的区别。此外,还详细阐述了HTTP与HTTPS的区别,包括HTTPS的安全性及实现原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

HTTP(超文本传输协议)

URL

URL就是平常说的 “网址”,其组成如下:
协议方案名称://用户名:密码@服务器IP地址:端口/请求资源的路径?查询字符串#片段标识符

urlencode:对提交字符串中的特殊字符进行转义编码,防止产生歧义
urldecode:对已编码的URL进行解码

HTTP协议格式

HTTP协议格式分为四个部分:首行、头部、空格、正文
首行:

请求首行:由请求方法 、URL、协议版本三部分组成,由空格间隔,并且以 \r\n结尾

请求方法:POST/GET/HEAD/PUT/DELETE
GET:从服务器获取数据,也可以提交数据,待提交的数据存放在URL中, 有长度限制
POST:向服务器提交数据,待提交的数据存放在正文中,没有长度限制

响应首行:由协议版本、状态码、状态码描述三部分组成,由空格间隔,并以\r\n结尾

协议版本: HTTP 1.0/1.1/2
状态码:
1xx:接收的请求正在处理
2xx:请求正常处理完毕 例如:200(OK)204(No Content)
3xx:需要进行附加操作以完成请求 例如:301(永久重定向)302(临时重定向)
4xx:服务器无法处理请求 例如:400(客户端请求报文出错) 403(服务器禁止访问资源) 404(资源不存在或丢失)
5xx:服务器处理请求出错 例如:501(客户端请求的功能暂不支持)503(服务器繁忙)

头部:
头部中都是key:val形式的键值对,之间用\r\n间隔

空行:
\r\n,用于间隔头部与正文

正文:
包含客户端提交给服务器的数据和服务器反馈给客户端的数据

HTTP 1.0/1.1/2 区别
  • HTTP 1.0:
    • 用户密码未加密
    • 使用短连接,即每次发送数据都会进行TCP三次握手四次挥手
    • 不支持断点续传,每次都会传输全部的页面和数据
  • HTTP 1.1:
    • 默认使用长连接,只需要建立一连接就可以发送多次数据,连接时长可以在连接请求头部中的 keep-alive中修改
    • 支持断点续传
  • HTTP 2
    • 头部压缩
    • 使用二进制格式,使用了更靠近TCP/IP的二进制格式,摒弃了ASCII码
    • 多路复用
HTTP VS HTTPS

HTTPS = HTTP + SSL/TLS

TLS是传输层加密协议,前身是SSL协议,有时候两者并不区分

HTTP默认使用80端口,HTTPS默认使用443端口

HTTPS实现原理:

  1. client向server端发送http请求,并且发送随机数1和客户端支持的加密算法
  2. server收到请求后,返回给client随机数2和协商好的加密算法
  3. 随即server给client发送第二个响应报文,包含一套由权威机构认证的数字证书也就是公钥
  4. client解析证书,验证真伪,通过验证后,生成一个随机数3
  5. client用三个随机数组装成会话密钥,使用证书的公钥加密,发送给server
  6. server通过私钥解密,还原会话密钥
  7. 之后的通信使用会话密钥进行加密通信

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值