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直 ...
随机推荐
- 【分块】LibreOJ 6280 数列分块入门4
题目 https://loj.ac/p/6280 题解 将 \(n\) 个元素的数组 \(a\) 按块长 \(\sqrt{n}\) 进行分块处理.为每个块设置两个懒添加标记 \(add[i], sum ...
- Centos查找Tomcat路径并重启
[root@devrestcloud ~\]# find / -name \*tomcat\* [root@devrestcloud ~]# cd /usr/tomcat/apache-tomcat- ...
- 解决WSL2无法启动提示“找不到元素”
最近一段时间没有看 docker desktop,忽然想起来打开看看,结果死活启动不了.以前卸载之后,重新安装就好了,同样的方法尝试了很多次还是不太行,重启也不行... 后来想想是不是 wsl 出了问 ...
- Linux系统安装python3.8与卸载教程
ln -sf /usr/local/python311/bin/python3.11 /usr/local/bin/python3ln -sf /usr/local/python311/bin/pyd ...
- mybatis-plus逻辑删除不生效的解决办法
我们在使用mybatis-plus时,一般设备逻辑删除是非常简单的,基本上在yaml等配置文件中做一下配置.然后在字段上注解@TableLogic就可以了.有不清楚的,可以参考https://www. ...
- 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. ...
- IM扫码登录技术专题(四):你真的了解二维码吗?刨根问底、一文掌握!
本文引用了ELab团队.腾讯大讲堂两个公众号分享的文章内容,引用内容见文末参考资料,感谢原作者的无私分享. 1.引言 对于市面上主流的IM来说,跟二维码有关的功能,比如扫码加好友.扫码登陆.扫码加群等 ...
- 【狂神说Java】Java零基础学习笔记-预科
[狂神说Java]Java零基础学习笔记-预科 预科01:学习准备:博客 博客,英文名为Blog,它的正式名称为网络日记 为什么要写博客? 需要总结和思考.有时候我们一直在赶路,却忘了放慢脚步 提升文 ...
- Commit规范
Commit规范 遵循commit规范是一件很重要的事,不仅更规范,而且也方便其他人查看git记录,所以这篇博客就用来浅记一下commit需要遵循的基本规范. commit格式 在 Angular 规 ...
- Appium_WebDriverAgent设置
在使用真机调试的时候犯了一个错误,我把WebDriverAgent 下载到本地的A目录下,然后进行build安装,这样在模拟器上执行是无法发现问题的,但是使用appium 在真机上执行 ...