HTTP - [01] 简介
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] 简介的更多相关文章
- Node.js 教程 01 - 简介、安装及配置
系列目录: Node.js 教程 01 - 简介.安装及配置 Node.js 教程 02 - 经典的Hello World Node.js 教程 03 - 创建HTTP服务器 Node.js 教程 0 ...
- Python 黑客 004 用Python构建一个SSH僵尸网络 01 简介
用Python构建一个SSH僵尸网络 01 简介 一. 构建一个SSH僵尸网络的流程图: Created with Raphaël 2.1.0手动操作,实现通过SSH连接目标服务器(手动)用 Pexp ...
- Linux 时间同步 01 简介
Linux 时间同步 01 简介 目录 Linux 时间同步 01 简介 时间同步 公共NTP服务器地址及IP 系统时间相关文件 时间同步 大数据产生与处理系统是各种计算设备集群的,计算设备将统一.同 ...
- MongoDB学习笔记-01 简介、安装
MongoDB简介 MongoDB是一种强大.灵活.可拓展的存储方式.是一个面向文档(相当于"行"的概念)的数据库. 可拓展:通过添加服务器而增加存储量. Windows下安装 版 ...
- ElasticSearch学习笔记-01 简介、安装、配置与核心概念
一.简介 ElasticSearch是一个基于Lucene构建的开源,分布式,RESTful搜索引擎.设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便.支持通过HTTP使用JSON进 ...
- Inside Kolla - 01 简介
简介 在 opencloud 2015 的会议上初次了解到 kolla 项目后,开始去了解和学习 kolla 的源代码和相关的知识.经过一段时间的了解,觉得 kolla 确实是一个很好的项目,它使用预 ...
- Objective-C:01简介
1.Objective-C简介 Objective-C是一种面向对象的计算机语言 OC不是一门全新的语言 C语言的基础上增加了一层最小的面向对象语法 OC完全兼容C语言 可以在OC代码中混入C语言代码 ...
- Spring Cloud开发实践 - 01 - 简介和根模块
简介 使用Spring Boot的提升主要在于jar的打包形式给运维带来了很大的便利, 而Spring Cloud本身的优点不是那么明显, 相对于Dubbo而言, 可能体现在跨语言的交互性上(例如可以 ...
- Jenkins系列之-—01 简介&新建任务
一.Jenkins 简介 Jenkins是一个可扩展的持续集成引擎. 主要用于: l 持续.自动地构建/测试软件项目.l 监控一些定时执行的任务. Jenkins拥有的特性包括: l 易于安装-只要把 ...
- Selenium系列之--01 简介【转】
1.selenium 工具组件 1.1 selenium2,也称为selenium webdriver.webdriver原来是另一个自动化测试工具,后与selenium 合并了.webdriver直 ...
随机推荐
- uni-app onReachBottom钩子触发问题
前情 uni-app是我很喜欢的跨平台框架,它能开发小程序,H5,APP(安卓/iOS),对前端开发很友好,自带的IDE让开发体验也很棒,公司项目就是主推uni-app. 最近有多个需求,页面滚动到底 ...
- 【第2章】matlab程序设计基础
matlab语言的常量与变量 matlab语言的变量命名规则 由一个字母引导,后面可以为其他字符. 区分大小写 如Abc ≠ ABc matlab的保留常量 以下为系统保留常量,自己定义的变量不能与他 ...
- 我的世界服务器搭建教程 兼容Paper核心 兼容Spigot核心
注意:该服务器是基于Paper1.20.1核心进行初始化,默认兼容spigot插件. 一.配置JDK环境 二. 服务器核心配置 三.服务器启动 四.加入游戏 现在搭建出来的是原版生存服务器,接下来需要 ...
- shell判断字符串结尾
下面围绕"判断字符串是否以.txt结尾"展开.转变一下也同样适用于"判断字符串是否以.txt开头". 通用的方法 # 方法一.使用grep命令 #!/bin/s ...
- Idea如何关闭单词拼写检查
打开Intellij Idea,在代码中输入lisi或zhangsan单词,可见这两个单词下面出现了绿色波浪线,表明词库中找不到这两个单词 2 鼠标移到波浪线上,可以看到如下提示信息,点击[more] ...
- Qt编写视频监控系统75-计算实时码率并显示
一.前言 做监控摄像头的实时视频显示,一般还会要求统计实时码率显示在通道画面上,一个是为了测试下整个软件的性能,同时也看下当前到底是主码流还是子码流,设备到底是不是真的按照设定的码流大小来传输视频数据 ...
- Qt编写可视化大屏电子看板系统22-平滑曲线图
一.前言 平滑曲线是所有涉及到曲线图的项目中,绕不开的一个话题,尽管很多人爱看折线图,但是很多时候来个平滑曲线图,会更加赏心悦目,这就好比现在的手机app移动客户端上,从最初的四方四正到现在的平滑圆角 ...
- Qt开源作品35-秘钥生成器
一.前言 在很多商业软件中,需要提供一些可以试运行的版本,这样就需要配套密钥机制来控制,纵观大部分的试用版软件,基本上采用以下几种机制来控制. 远程联网激活,每次启动都联网查看使用时间等,这种方法最完 ...
- Quartz分布式定时任务
前言: 项目需要执行定时任务,该类定时任务只需要实现类似Spring原生的@Scheudle注解的定时方法即可,无需考虑分片.刷新及重启,且因项目是多实例,所以需要考虑实现分布式,考察了目前开源的几款 ...
- uniapp同城社区交友 仿小红书 APP小程序源码 含后台管理和网页端
注意(预防被骗) 本程序仅在 破晓店铺(https://shop.abyssdawn.com/).破晓一代网络科技淘宝店 出售其余地方均为骗子. 关于本程序 本程序适用于各种同城社区交友类产品,例如同 ...