HTTP本身是不安全的,因为传输的数据未经加密,可能会被窃听或篡改。为了解决这个问题,引入了HTTPS,即在HTTP上加入SSL/TLS协议,为数据传输提供了加密和身份验证。

一、概述

  HTTP(超文本传输协议,HyperText Transfer Protocol)是一种用于分布式、协作式、超媒体信息系统的应用层协议。HTTP是万维网(WWW)的数据通信的基础,设计的目的是确保客户端与服务器之间的通信,是互联网上最常用的协议之一。HTTP是一个基于TCP/IP通信协议来传递数据的(HTML文件、图片文件、查询结果等)。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法,通过HTTP或者HTTPS协议请求的资源由通义资源标识符(Uniform Resource Identifiers,URI)来标识。

  HTTP的基本工作原理是客户端(通常是web浏览器)向服务器发送请求,服务器接收到请求后,返回相应的资源。这些资源可以是网页、图像、音频文件、视频等。HTTP使用了客户端-服务器模型,其中客户端发送请求,服务器返回响应。HTTP的请求-响应模型通常由以下几个步骤组成:

(1)建立连接:客户端与服务器之间建立连接。在传统的HTTP中,这是基于TCP/IP协议的。最近的HTTP/2和HTTP/3则使用了更先进的传输层协议,例如基于TCP的二进制协议(HTTP/2)或者基于UDP的QUIC协议(HTTP/3)。

(2)发送请求:客户端向服务器发送请求,请求中包含要访问的资源的 URL、请求方法(GET、POST、PUT、DELETE 等)、请求头(例如,Accept、User-Agent)以及可选的请求体(对于 POST 或 PUT 请求)。

(3)处理请求:服务器接收到请求后,根据请求中的信息找到相应的资源,执行相应的处理操作。这可能涉及从数据库中检索数据、生成动态内容或者简单地返回静态文件。

(4)发送响应:服务器将处理后的结果封装在响应中,并将其发送回客户端。响应包含状态码(用于指示请求的成功或失败)、响应头(例如,Content-Type、Content-Length)以及可选的响应体(例如,HTML 页面、图像数据)。

(5)关闭连接:在完成请求-响应周期后,客户端和服务器之间的连接可以被关闭,除非使用了持久连接(如 HTTP/1.1 中的 keep-alive)。

二、方法

HTTP方法指定了客户端可以都服务器上的资源执行哪些动作。

主要的HTTP方法有:

(1)GET:请求从服务器获取指定资源。这是最常用的方法,用于访问页面。

(2)POST:请求服务器接受并处理请求体中的数据,通常用于表单提交。

(3)PUT:请求服务器存储一个资源,并用请求体中的内容替换目标资源的所有内容。

(4)DELETE:请求服务器删除指定的资源。

(5)HEAD:与GET类似,但不获取资源的内容,只获取响应头信息。

三、状态码

HTTP状态码是服务器对客户端请求的响应。


状态码分为五类:

(1)1xx(信息性状态码):表示接收的请求正在处理。

(2)2xx(成功状态码):表示请求正常处理完毕。

(3)3xx(重定向状态码):需要后续操作才能完成这一请求。

(4)4xx(客户端错误状态码):表示请求包含语法错误或无法完成。

(5)5xx(服务器错误状态码):服务器在处理请求的过程中发生了错误。

— 业精于勤荒于嬉,行成于思毁于随 —

HTTP - [01] 简介的更多相关文章

  1. Node.js 教程 01 - 简介、安装及配置

    系列目录: Node.js 教程 01 - 简介.安装及配置 Node.js 教程 02 - 经典的Hello World Node.js 教程 03 - 创建HTTP服务器 Node.js 教程 0 ...

  2. Python 黑客 004 用Python构建一个SSH僵尸网络 01 简介

    用Python构建一个SSH僵尸网络 01 简介 一. 构建一个SSH僵尸网络的流程图: Created with Raphaël 2.1.0手动操作,实现通过SSH连接目标服务器(手动)用 Pexp ...

  3. Linux 时间同步 01 简介

    Linux 时间同步 01 简介 目录 Linux 时间同步 01 简介 时间同步 公共NTP服务器地址及IP 系统时间相关文件 时间同步 大数据产生与处理系统是各种计算设备集群的,计算设备将统一.同 ...

  4. MongoDB学习笔记-01 简介、安装

    MongoDB简介 MongoDB是一种强大.灵活.可拓展的存储方式.是一个面向文档(相当于"行"的概念)的数据库. 可拓展:通过添加服务器而增加存储量. Windows下安装 版 ...

  5. ElasticSearch学习笔记-01 简介、安装、配置与核心概念

    一.简介 ElasticSearch是一个基于Lucene构建的开源,分布式,RESTful搜索引擎.设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便.支持通过HTTP使用JSON进 ...

  6. Inside Kolla - 01 简介

    简介 在 opencloud 2015 的会议上初次了解到 kolla 项目后,开始去了解和学习 kolla 的源代码和相关的知识.经过一段时间的了解,觉得 kolla 确实是一个很好的项目,它使用预 ...

  7. Objective-C:01简介

    1.Objective-C简介 Objective-C是一种面向对象的计算机语言 OC不是一门全新的语言 C语言的基础上增加了一层最小的面向对象语法 OC完全兼容C语言 可以在OC代码中混入C语言代码 ...

  8. Spring Cloud开发实践 - 01 - 简介和根模块

    简介 使用Spring Boot的提升主要在于jar的打包形式给运维带来了很大的便利, 而Spring Cloud本身的优点不是那么明显, 相对于Dubbo而言, 可能体现在跨语言的交互性上(例如可以 ...

  9. Jenkins系列之-—01 简介&新建任务

    一.Jenkins 简介 Jenkins是一个可扩展的持续集成引擎. 主要用于: l 持续.自动地构建/测试软件项目.l 监控一些定时执行的任务. Jenkins拥有的特性包括: l 易于安装-只要把 ...

  10. Selenium系列之--01 简介【转】

    1.selenium 工具组件 1.1 selenium2,也称为selenium webdriver.webdriver原来是另一个自动化测试工具,后与selenium 合并了.webdriver直 ...

随机推荐

  1. 【分块】LibreOJ 6280 数列分块入门4

    题目 https://loj.ac/p/6280 题解 将 \(n\) 个元素的数组 \(a\) 按块长 \(\sqrt{n}\) 进行分块处理.为每个块设置两个懒添加标记 \(add[i], sum ...

  2. Centos查找Tomcat路径并重启

    [root@devrestcloud ~\]# find / -name \*tomcat\* [root@devrestcloud ~]# cd /usr/tomcat/apache-tomcat- ...

  3. 解决WSL2无法启动提示“找不到元素”

    最近一段时间没有看 docker desktop,忽然想起来打开看看,结果死活启动不了.以前卸载之后,重新安装就好了,同样的方法尝试了很多次还是不太行,重启也不行... 后来想想是不是 wsl 出了问 ...

  4. Linux系统安装python3.8与卸载教程

    ln -sf /usr/local/python311/bin/python3.11 /usr/local/bin/python3ln -sf /usr/local/python311/bin/pyd ...

  5. mybatis-plus逻辑删除不生效的解决办法

    我们在使用mybatis-plus时,一般设备逻辑删除是非常简单的,基本上在yaml等配置文件中做一下配置.然后在字段上注解@TableLogic就可以了.有不清楚的,可以参考https://www. ...

  6. Eclipse导入并打开java项目,在“package ***;”左侧提示 Multiple markers at this line,或者在“import java.util.*”左侧提示The import java.util cannot be resolved。

    Eclipse导入并打开java项目,在"package ***:"左侧提示 Multiple markers at this line,或者在"import java. ...

  7. IM扫码登录技术专题(四):你真的了解二维码吗?刨根问底、一文掌握!

    本文引用了ELab团队.腾讯大讲堂两个公众号分享的文章内容,引用内容见文末参考资料,感谢原作者的无私分享. 1.引言 对于市面上主流的IM来说,跟二维码有关的功能,比如扫码加好友.扫码登陆.扫码加群等 ...

  8. 【狂神说Java】Java零基础学习笔记-预科

    [狂神说Java]Java零基础学习笔记-预科 预科01:学习准备:博客 博客,英文名为Blog,它的正式名称为网络日记 为什么要写博客? 需要总结和思考.有时候我们一直在赶路,却忘了放慢脚步 提升文 ...

  9. Commit规范

    Commit规范 遵循commit规范是一件很重要的事,不仅更规范,而且也方便其他人查看git记录,所以这篇博客就用来浅记一下commit需要遵循的基本规范. commit格式 在 Angular 规 ...

  10. Appium_WebDriverAgent设置

            在使用真机调试的时候犯了一个错误,我把WebDriverAgent 下载到本地的A目录下,然后进行build安装,这样在模拟器上执行是无法发现问题的,但是使用appium 在真机上执行 ...