• HTTP协议的基本概念与理解!


    一、什么是HTTP协议

    HTTP(超文本传输协议)是一个基于请求与响应,无状态的,应用层的协议,常基于TCP/IP协议传输数据,互联网上应用最为广泛的一种网络协议,所有的WWW文件都必须遵守这个标准。设计HTTP的初衷是为了提供一种发布和接收HTML页面的方法。

    二、状态码 

    状态码类别描述
    1xx提示信息,表示协议处理未结束
    2xx成功,服务器成功处理客户端请求
    3xx重定向,资源位置改变,客户端需重新发送请求
    4xx客户端错误,服务器无法处理
    5xx服务器端错误,服务器在处理请求时内部错误

    三、http协议的版本

    HTTP/1.0,发送请求,创建一次连接,获得一个web资源,连接断开

    HTTP/1.1,发送请求,创建一次连接,获得多个web资源,连接断开

    四、Http协议的组成

     Http协议由(Http请求+Http响应)组成,当在浏览器中输入网址访问某个网站时, 你的浏览器会将你的请求封装成一个Http请求发送给服务器站点,服务器接收到请  求后会组织响应数据封装成一个Http响应返回给浏览器。即没有请求就没有响应。

    http请求包括:请求行、请求头、请求体

    http响应包括:响应行、响应头、响应体 

    (1)HTTP请求报文

     HTTP请求报文由3部分组成(请求行+请求头+请求体)

    (2)HTTP响应报文

    HTTP的响应报文也由三部分组成(响应行+响应头+响应体)

    五、HTTP请求方法

    HTTP协议中共定义了八种方法(也叫“动作”)来以不同方式操作指定的资源:

    (1)GET

    向指定的资源发出“显示”请求。使用GET方法应该只用在读取数据,而不应当被用于产生“副作用”的操作中,例如在Web Application中。其中一个原因是GET可能会被网络蜘蛛等随意访问。

    (2)HEAD

    GET方法一样,都是向服务器发出指定资源的请求。只不过服务器将不传回资源的本文部分。它的好处在于,使用这个方法可以在不必传输全部内容的情况下,就可以获取其中“关于该资源的信息”(元信息或称元数据)。

    (3)POST

    指定资源提交数据,请求服务器进行处理(例如提交表单或者上传文件)。数据被包含在请求本文中。这个请求可能会创建新的资源或修改现有资源,或二者皆有。

    (4)PUT

    指定资源位置上传其最新内容

    (5)DELETE

    请求服务器删除Request-URI所标识的资源。

    (6)TRACE

    回显服务器收到的请求,主要用于测试或诊断。

    (7)OPTIONS

    这个方法可使服务器传回该资源所支持的所有HTTP请求方法。用’*'来代替资源名称,向Web服务器发送OPTIONS请求,可以测试服务器功能是否正常运作。

    (8)CONNECT

    HTTP协议中预留给能够将连接改为管道方式的代理服务器。通常用于SSL加密服务器的链接(经由非加密的HTTP代理服务器)。

    注意事项

    1. 方法名称是区分大小写的。当某个请求所针对的资源不支持对应的请求方法的时候,服务器应当返回状态码405(Method Not Allowed),当服务器不认识或者不支持对应的请求方法的时候,应当返回状态码501(Not Implemented)。
    2. HTTP服务器至少应该实现GET和HEAD方法,其他方法都是可选的。当然,所有的方法支持的实现都应当匹配下述的方法各自的语义定义。此外,除了上述方法,特定的HTTP服务器还能够扩展自定义的方法。例如PATCH(由 RFC 5789 指定的方法)用于将局部修改应用到资源。

    六、GET与POST区别 

    1. GET方法提交的数据通过URL传递,而POST方法提交的数据通过HTTP请求的消息体进行传递。

    2. GET方法提交的数据长度有限制,由URL长度限制;而POST方法提交的数据长度没有限制。

    3. GET方法提交的数据可以被缓存,而POST方法不行。

    4. GET方法提交的数据可以被收藏为书签,而POST方法不行。

    5. GET方法提交的数据安全性较低,因为数据在URL中明文传输;而POST方法提交的数据相对安全,因为数据在请求体中加密传输。

    6. GET方法用于获取数据,对服务器没有影响;而POST方法用于提交数据,对服务器会产生影响。

    七、Http的优缺点

    (1)优点

    1. 简单易用:HTTP设计简单,容易理解和使用,几乎支持所有的操作系统和浏览器。
    2. 兼容性好:HTTP是基于TCP/IP协议的,可以实现跨平台传输,保证了不同操作系统和应用程序之间的兼容性。
    3. 易于扩展:HTTP可以很容易地通过添加新的请求方法、报文头部、状态码等来扩展其功能。
    4. 可缓存性:HTTP支持缓存机制,可以提高数据传输的速度,降低网络带宽的消耗。
    5. 安全性较高:HTTP可以使用SSL/TLS等协议进行加密传输,保证了数据的安全性。

    (2)缺点

    1. 传输速度较慢:HTTP使用明文传输,每个请求和响应都需要进行完整的通信过程,而且请求和响应的报文头信息也很多,因此传输速度相对较慢。
    2. 安全性有限:HTTP的安全性相对较差,因为它的通信数据是明文传输的,容易被拦截和窃取。
    3. 可靠性不高:HTTP没有任何机制来处理数据的丢失和重复,也无法保证数据传输的顺序和可靠性。
    4. 只能处理单向请求:HTTP只能处理客户端向服务器的单向请求,而无法实现服务器向客户端的主动推送。
    5. 没有事务支持:HTTP不支持事务机制,无法对执行的多个请求进行原子性操作。

    八、HTTP与HTTPS的区别 *

    • HTTP是超文本传输协议,信息是明文传输,存在安全隐患。HTTPS解决了 HTTP的安全隐患,同时在TCP和HTTP网络层之间加入了SSL/TLS安全协议,使得报文加密传输。
    • HTTP通过TCP三次握手进行报文传输,HTTPS在三次握手之后加入SSL/TLS握手,才可进行加密报文传输。
    • HTTP端口号是80,HTTPS端口号是443。
    • HTTPS需要向CA(证书权威机构)申请数字证书,以保证服务器身份可信。
    • 由于HTTPS需要加密和解密数据,传输速度会比HTTP慢一些。
  • 相关阅读:
    经历了源码的痛苦,掌握DRF的核心序列化器
    Linux下安装Docker保姆级教程
    windows平台编译CEF支持H264(MP3、MP4)超详细
    Additional Features for Scripting
    1. @Component注解的原理剖析
    2023计算机毕业设计SSM最新选题之java乡村疫情防控管理系统37804
    【LeetCode】18、四数之和
    高效工作文档产出归类
    Ovalbumin-PEG-NTA/TPP 鸡卵白蛋白-聚乙二醇-次氮基三乙酸/磷酸三苯酯
    GLPI资产管理系统安装Fusioninventory插件发现Windows和Linux主机
  • 原文地址:https://blog.csdn.net/m0_63216218/article/details/132834413