http

HTTP协议

本篇文章就HTTP(HyperText Transfer Protocol)协议做一些简单的介绍


提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

提示:这里可以添加本文要记录的大概内容:
例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。


提示:以下是本篇文章正文内容,下面案例可供参考

一、HTTP基本介绍

HTTP就是超文本传输协议,
超文本协议是一个双向协议

url(统一资源定位符)

在这里插入图片描述url说明了协议,服务器和资源路径
大部分的url都遵循一种标准的格式,该格式有三个部分:
1.URL第一部分的称为一种方案,说明了访问资源所使用的协议的类型,通常就是HTTP协议
2.第二部指出了服务器的因特网地址
3.其余的部分指定了web服务器上的资源

HTTP方法

支持几种不同的请求命令,这些命令被称为HTTP方法,每条HTTP请求都要包含一种方法,该方法会告诉服务器要执行什么动作(例如:获取一个web网页,运行一个网关,删除一个文件),一些常见的HTTP方法

HTTP方法描述
GET从指定的资源中获取数据
PUT将来自客户端的数据存储到命名的服务器资源中
DELETE删除服务器中命名的资源
POST向指定的资源中提交要处理的数据
HEAD和GET方法相同,但只是返回HTTP报头,不返回文档的主体

GET和POST比较

GETPOST
后退按钮/刷新无害数据将会被重新提交
书签可收藏为书签不可收藏为书签
历史参数会保留在历史中参数不会保留在历史中
对数据长度的限制当发送数据时,GET 方法向 URL 添加数据;URL 的长度是受限制的(URL 的最大长度是 2048 个字符)没有限制
数据类型只允许ASCLL字符没有限制
安全性与POST相比来说,安全性较差,因为要发送的数据在URL中与GET相比较安全,因为数据不会保存在浏览器的历史中和web服务器日志中
可见性要传输的数据在URL中对于所有的人是可见的数据不会显示在URL中

状态码

1XX临时响应
表示临时相应并需要请求者继续执行

100

2XX成功
表示成功处理的状态码

200

3XX重定向
要完成请求需要进一步操作,表示请求的资源被重定向到别的路径上

300

4XX客户端错误

400

5XX服务器端错误

500

报文的格式

所有的HTTP报文都可以分为两类:请求报文(request message)和响应报文(response message).请求报文会向web服务器请求一个动作,服务器会将请求的结果返回给客户端.
在这里插入图片描述请求报文的格式:

<method> <request-URL> <version>
<headers>

<entity-body>

响应报文格式:

<version> <statue> <reason-phrase>
<headers>

<entity-body>
  • 方法(method)
    客户端希望服务器对资源执行的动作,是一个独立的单词.比如HEAD,GET,POST等
  • 请求URL(request-URL)
    命名了所请求的资源.
  • 版本(version)
    报文所使用的HTTP版本,格式为: HTTP/1.0(可变)
  • 状态码(status-code)
    用三位数描述了请求过程中所发生的情况
  • 原因短语(reason-phrase)
    数字状态码的可读版本,用以解释数字状态码的含义.
  • 首部(header)
    每个首部都包含一个名字后面跟一个冒号(:)冒号后面有个可选的空格,首部由一个空行结束用来分隔首部和正文.
  • 实体的主体部分(entity-body)
    实体由任意数据组成
    ![](https://img-blog.csdnimg.cn/20201019230644593.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwNzYwMjkx,size_16,color_FFFFFF,t_70#pic_center

HTTP结构

web服务器

web服务器实现了HTTP和TCP连接的管理.
在这里插入图片描述

  1. 简历连接——接受一个客户端连接请求
  2. 接收请求——从网络中读取一条HTTP请求报文
  3. 处理请求——对请求报文的进行解释,并采取相应行动
  4. 访问资源——访问报文中指定的资源
  5. 构建响应——构建带有正确首部的HTTP响应报文
  6. 发送报文——将响应发送给客户端
  7. 记录事物处理的过程——将与已完成的事物有关的内容的记录保存到日志文件中
    在这里插入图片描述

SSL/TLS建立连接各过程

HTTP/1.1、 HTTP/2、 HTTP/3的演变

  • HTTP1.1相较于HTTP1.0
  1. 使用使用了TCP长连接的形式减少了HTTP/1.0短连接所带来的性能开销
  2. 支持管道网络传输,只要第一个请求发出去了,不必等待其响应回来,就可以直接发送下一个请求,从而减少了整体的响应时间.
  • HTTP/2相较于HTTP/1.1的改进
  1. 头部压缩
    HTTP/2会压缩头部信息,若同时发送多个相同或相似的头部,协议就会消除重复的部分.压缩算法成为HAPCK算法:客户端和服务端同时都维护着一张头部信息的表,所有的字段都会存入表中,生成索引号,以后就不必发送相同的字段了,只需要发送索引号即可.

2.全面采用二进制格式
HTTP/2不再像是HTTP/1.1使用纯文本形式的报文,而是全面使用二进制格式,头信息和数据体都采用了二进制,称为头信息帧和数据帧
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值