http协议基础

http协议概述

HTTP 协议是一种 应用层协议,用于 Web 浏览器(客户端)和 Web 服务器之间通信。它采用了“你说我听”的模式:客户端发起请求(Request),服务器响应结果(Response)

客户端向服务器发送一个请求报文,请求报文包含请求的方法、URL、协议版本、请求头部和请求数据。 服务器以一个状态行作为响应,响应的内容包括协议的版本、成功或者错误代码、服务器信息、响应头部和响应数据。

http请求方法

方法作用描述
GET从服务器获取资源(只读)
POST向服务器提交数据(如表单、上传文件)
PUT用客户端提供的数据替换服务器上的资源
DELETE删除服务器上的指定资源
HEAD类似 GET,但只返回响应头,不返回主体
OPTIONS查询服务器支持哪些 HTTP 方法
TRACE回显客户端请求,用于测试和诊断
CONNECT建立网络通道(如 HTTPS 的隧道,用于代理)

URL

URL(统一资源定位符,Uniform Resource Locator)

部分名称示例中的内容说明
1. 协议http使用的传输协议,如 http、https、ftp 等
2. 层级标识//固定符号,标记协议后面开始写地址部分
3. 凭证信息(省略)如用户名:密码@,用于需要身份认证的服务
4. 服务器www.luffycity.com通常是域名,有时也可能是 IP 地址
5. 端口号:80通信端口,http 默认是 80,https 是 443,可省略
6. 路径/news/index.html表示服务器上的具体资源位置(文件路径)
7. 查询参数?id=250&page=1提供额外的数据,GET 请求用的参数
8. 片段标记#xxx(例中没有)页面内部锚点,如跳转到某段内容的位置

端口(Port)是计算机网络中的一个数字标识符,它用来区分一台服务器上不同的服务或程序

服务类型协议端口号说明
HTTP 网页服务http80最常见,访问网页时使用
HTTPS 安全网页https443加密网页
FTP 文件传输ftp21传输文件
SSH 远程登录ssh22用于远程管理服务器
SMTP 邮件发送smtp25发邮件

传输协议是指网络中用来定义通信规则和数据格式的协议,不同的协议适用于不同的应用场景和需求。

协议名称全称主要用途端口号特点描述
HTTPHyperText Transfer Protocol网页浏览80无状态、基于文本,浏览器和服务器通信协议
HTTPSHTTP Secure安全网页浏览443基于HTTP,使用SSL/TLS加密传输
FTPFile Transfer Protocol文件上传与下载21支持匿名及认证访问,专用于文件传输
SMTPSimple Mail Transfer Protocol发送邮件25服务器之间邮件发送协议
POP3Post Office Protocol 3接收邮件110邮件下载到客户端,本地查看
IMAPInternet Message Access Protocol在线查看邮件143支持服务器上邮件管理,客户端同步
TCPTransmission Control Protocol可靠传输的传输层协议面向连接,保证数据顺序和完整
UDPUser Datagram Protocol快速无连接传输无连接,不保证可靠性,适合实时应用
SSHSecure Shell远程安全登录22加密传输,取代Telnet
Telnet远程登录23不加密,已被SSH替代

http特点

响应-请求模式

客户端发起一个请求,服务端响应一个请求,若客户端没有发起请求,那么服务端也不会响应任何请求。

无状态

服务器不会记住浏览器的“历史请求”或“身份信息”,每次请求都是“全新”的。

服务器若想要做到“记住用户”,那么需要通过使用cookie记录登录信息。

无连接

浏览器每次向服务器发送请求,服务器处理后就断开连接。也就是说每次连接只能处理一个请求,HTTP/1.0 是典型的“无连接”,HTTP/1.1 默认会尝试“短暂保持连接”,但整体仍然是“请求-响应-断开”的流程。

http状态码

分类代码分类名称说明
1xx信息提示请求已接收,继续处理
2xx成功请求成功并返回所需信息
3xx重定向需要客户端进一步操作
4xx客户端错误请求错误或权限问题
5xx服务器错误服务器无法完成处理请求
状态码名称中文含义说明
100Continue继续,客户端应继续其请求
101Switching Protocols切换协议,服务器正在切换协议
102Processing (WebDAV)正在处理请求,避免客户端超时
103Early Hints响应头预告,用于性能优化
状态码名称含义说明
200OK请求成功
201Created请求成功并创建了资源
202Accepted请求已接受,尚未处理
203Non-Authoritative Info返回信息非原始服务器
204No Content请求成功但无返回内容
205Reset Content重置内容,要求重置文档视图
206Partial Content返回部分内容(用于断点续传)
207Multi-Status多状态(WebDAV 扩展)
208Already Reported已报告(WebDAV)
226IM Used实体已使用(RFC 3229)
状态码名称含义说明
300Multiple Choices多种选择
301Moved Permanently永久移动(资源已永久转移新地址)
302Found临时移动(当前暂时使用别的地址)
303See Other查看其他资源(用于重定向 POST)
304Not Modified资源未修改(可使用缓存)
305Use Proxy使用代理(已废弃)
306Switch Proxy切换代理(保留码,未使用)
307Temporary Redirect临时重定向,方法不变
308Permanent Redirect永久重定向,方法不变
状态码名称含义说明
400Bad Request错误请求(语法错误)
401Unauthorized未授权,需要认证
402Payment Required需要付款(保留)
403Forbidden禁止访问(权限问题)
404Not Found未找到资源
405Method Not Allowed方法不允许
406Not Acceptable不可接受的响应类型
407Proxy Authentication Required代理认证要求
408Request Timeout请求超时
409Conflict请求冲突
410Gone资源已永久删除
411Length Required需要 Content-Length 头
412Precondition Failed前提条件失败
413Payload Too Large请求体过大
414URI Too LongURI 过长
415Unsupported Media Type不支持的媒体类型
416Range Not Satisfiable请求范围不符合
417Expectation Failed期望失败
418I'm a teapot我是茶壶(愚人节彩蛋)
421Misdirected Request请求方向错误
422Unprocessable Entity实体无法处理(语义错误)
423Locked资源被锁定(WebDAV)
424Failed Dependency依赖失败(WebDAV)
425Too Early太早发送请求
426Upgrade Required需要升级协议
428Precondition Required需要前提条件
429Too Many Requests请求太多,被限流
431Request Header Fields Too Large请求头字段太大
451Unavailable For Legal Reasons因法律原因不可用
状态码名称含义说明
500Internal Server Error服务器内部错误
501Not Implemented尚未实现
502Bad Gateway网关错误
503Service Unavailable服务不可用
504Gateway Timeout网关超时
505HTTP Version Not Supported不支持的 HTTP 版本
506Variant Also Negotiates协议协商错误
507Insufficient Storage存储空间不足(WebDAV)
508Loop Detected检测到循环(WebDAV)
510Not Extended未扩展支持
511Network Authentication Required需要网络认证

请求报文

例子:

请求头部:

  • Host:指定要访问的服务器的主机名(域名)和端口号。

  • User-Agent:标识发出请求的客户端类型(浏览器、操作系统、设备等),便于服务器做兼容性处理或统计分析。

  • Accept:告诉服务器客户端能接收哪些类型的响应内容。

  • Accept-Encoding:告知服务器客户端支持的压缩编码格式。

  • Accept-Language: 指定客户端希望的响应语言。

  • Content-Type:指定请求体中数据的格式(Content Body),便于服务器正确解析。

  • Content-Length:告知服务器请求体(body)的字节长度。

响应报文

例子:

字段名作用说明示例值
Server表示服务器软件的信息,可能暴露后端服务类型和版本nginx/1.18.0, Apache, Gunicorn/20.1.0
Date响应生成的时间,通常由服务器自动添加Sat, 28 Jun 2025 11:45:00 GMT
Vary告诉缓存服务器:根据哪些请求头字段返回不同内容(常用于压缩/多语言)Accept-Encoding, User-Agent
Content-Length响应体的字节长度,客户端据此决定内容接收是否完整1024, 348
Content-Type表示响应体的数据类型和编码格式,决定浏览器如何处理内容text/html; charset=UTF-8, application/json
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值