web安全基础学习

http基础

HTTP(HyperText Transfer Protocol,超文本传输协议)是一种用于分布式、协作式和超媒体信息系统的应用层协议。本文将介绍如何使用HTTP协议,以及在Linux操作系统中如何使用curl工具发起HTTP请求。

一、HTTP特性

  • 无状态:HTTP协议本身不保存用户状态信息,每次请求都是独立的。
  • 不连接:HTTP协议采用无连接的方式,即每次请求完成后,服务器和客户端之间的连接就会关闭。
  • 一问一答模式:客户端发起请求(Request),服务器返回响应(Response)。

二、HTTP报文格式

1. 请求报文

  • 请求行:包括请求类型(如POST、GET、HEAD等)、目的地(URL)和HTTP版本。
  • 请求头:包含请求的附加信息,如User-Agent、Content-Type等。
  • 正文:请求的内容,如POST请求的表单数据。

2. 响应报文

  • 响应行:包括HTTP版本、状态码(如200、404等)和状态消息(如OK、Not Found等)。
  • 响应头:包含响应的附加信息,如Content-Type、Server等。
  • 正文:响应的内容,如HTML页面、图片等。

三、请求类型

  • GET:请求内容会附加在URL中,适用于查询操作。
  • POST:请求内容在包体中,适用于提交数据。
  • HEAD:与GET类似,但不会返回响应正文,常用于测试文件是否存在。

四、常见状态码

  • 200:请求成功。
  • 302:重定向。
  • 404:资源不存在。
  • 400:请求语法错误。
  • 401:未授权,需要身份验证。
  • 403:禁止访问,服务器理解请求,但拒绝执行。
  • 500:服务器内部错误。
  • 503:服务器暂时不可用。

五、Linux中使用curl工具发起HTTP请求

以下是一个使用curl工具发起HTTP GET请求的示例:

bash 复制代码
curl -X GET http://www.example.com

发起POST请求的示例:

复制代码
curl -X POST -d "param1=value1&param2=value2" http://www.example.com

发起HEAD请求的示例:

复制代码
curl -X HEAD http://www.example.com

相关推荐
('-')19 分钟前
《从根上理解MySQL是怎样运行的》第二十二章学习笔记
笔记·学习·mysql
rising start39 分钟前
三、FastAPI :POST 请求、用户接口设计与 Requests 测试
python·网络协议·http·fastapi
人邮异步社区1 小时前
想要系统地学习扩散模型,应该怎么去做?
人工智能·学习·程序员·扩散模型
光头程序员1 小时前
vue学习笔记
vue.js·笔记·学习
点亮一颗LED(从入门到放弃)2 小时前
C语言学习笔记
笔记·学习
找了一圈尾巴3 小时前
Python 学习-深入理解 Python 进程、线程与协程(下)
开发语言·python·学习
活跃的煤矿打工人3 小时前
【星海随笔】标准学习
学习
老蒋新思维3 小时前
创客匠人 2025 峰会深度解析:AI 赋能垂直领域,创始人 IP 变现的差异化路径
大数据·网络·人工智能·网络协议·tcp/ip·重构·知识付费
今天你TLE了吗4 小时前
通过RocketMQ延时消息实现优惠券等业务MySQL当中定时自动过期
java·spring boot·后端·学习·rocketmq
北京耐用通信4 小时前
耐达讯自动化Profibus光纤转换器为您的水处理系统装上“光纤高速路”,数据从此畅通无阻!
网络·人工智能·科技·网络协议·自动化·信息与通信