【网络】HTTP协议

目录

概述

URL

结构

urlencode(URL编码)

urldecode(URL解码)

工具网址

HTTP请求

请求行

请求头

请求体

HTTP响应

状态行

响应头

响应体


个人主页:东洛的克莱斯韦克-CSDN博客

概述

HTTP协议是应用层协议,它定义了客户端(如浏览器)与服务器之间如何通信,以交换或传输

超文本。应用层协议可以自定义,但HTTP协议的方案成熟,应用广泛。
HTTP 协议是一个无连接、无状态的协议,即每次请求都需要建立新的连接,且服务器不会保存客户端的状态信息。

URL

结构

平时说的网址就是URL,主机IP加端口号可以标识全网内唯一的进程,再加路径可以标识全网内的唯一一个资源(文本,图片,视频等)

URL结构
协议://主机名[:端口号]/路径[?查询参数][#片段标识符]

协议:指定了如何访问资源,最常见的协议是http(超文本传输协议)和https(安全的超文本传输协议,即HTTP over SSL/TLS)。
主机名:通常是域名或IP地址,指明了资源所在的服务器。
端口号:指定了服务器上的特定端口,用于接收来自客户端的请求。HTTP的默认端口是80,HTTPS的默认端口是443。如果省略端口号,则使用默认端口。
路径:指明了服务器上资源的具体位置。路径可以包含多级目录,通常使用“/”分隔。
查询参数:可选部分,用于向服务器传递额外的信息,以“?”开始,后跟一个或多个参数,参数之间用“&”分隔。每个参数由键和值组成,通过“=”连接。
片段标识符:可选部分,用于指向资源的特定部分(如页面中的某个章节或元素),以“#”开始。这部分不会发送到服务器,而是由浏览器解析并处理。

urlencode(URL编码)

URL编码是一种将字符转换为可以通过URL安全传输的格式的方法。由于URL的某些部分(如路径、查询字符串)对字符有着严格的限制,比如空格、特殊符号(如#%&+等)在URL中有特定的含义或不被允许,因此需要对这些字符进行编码。

URL编码的过程通常是将需要编码的字符替换为%后跟两位十六进制数的形式。例如,空格字符( )被编码为%20,加号(+)被编码为%2B,斜杠(/)在某些上下文中也需要编码为%2F(尽管在URL的路径部分中它通常不被编码)。

urldecode(URL解码)

与URL编码相反,URL解码是将经过URL编码的字符串转换回原始字符的过程。解码器会查找所有%后跟两位十六进制数的序列,并将它们转换回对应的字符。

URL解码同样广泛应用于Web开发中,尤其是在处理用户输入、查询字符串解析以及Web表单数据提交等场景中。解码确保了服务器能够准确地解析和处理客户端发送的数据。

工具网址

UrlEncode编码/UrlDecode解码

HTTP请求


请求行


格式:请求方法 资源路径 HTTP版本号<CRLF>
请求方法:包括GET、POST、HEAD、OPTIONS、DELETE、TRACE、PUT等。其中,GET和POST是最常用的两种方法。GET方法用于请求服务器发送资源,POST方法用于提交表单数据。
资源路径:请求的资源在服务器上的位置。
HTTP版本号:指示使用的HTTP协议版本,如HTTP/1.1。


请求头


请求头包含了客户端发送给服务器的附加信息,如客户端类型(User-Agent)、请求的资源类型(Accept)、内容编码方式(Accept-Encoding)等。
常见的请求头包括:
Accept: 浏览器可接受的MIME类型。
Accept-Language: 浏览器所希望的语言种类。
Host: 初始URL中的主机和端口。
Referer: 包含一个URL,用户从该URL代表的页面出发访问当前请求的页面。
Content-Length: 表示请求消息正文的长度(对于POST请求)。
Connection: 表示是否需要持久连接,如Keep-Alive。
Cookie: 保存在客户端的文本文件,用于在请求中发送给服务器,以维持会话状态。


请求体


对于POST请求,请求体中包含了要发送给服务器的数据。数据通常以表单数据或JSON等格式编码。


HTTP响应


 

状态行


格式:HTTP版本号 状态码 原因叙述<CRLF>
状态码:一个三位的十进制数,用于表示服务器对请求的处理结果和状态。状态码分为五类,分别以1、2、3、4、5开头,表示不同的含义。
常见的状态码包括:
200 OK:表示请求成功,服务器已返回请求的网页。
404 Not Found:请求的资源不存在。
500 Internal Server Error:服务器内部错误,无法完成请求。


响应头


响应头包含了服务器发送给客户端的附加信息,如资源的内容类型(Content-Type)、内容长度(Content-Length)、内容编码方式(Content-Encoding)等。
常见的响应头包括:
Content-Type: 表示返回的内容类型,如text/html。
Content-Length: 表示返回内容的长度(字节数)。
Content-Encoding: 表示返回内容的编码方式,如gzip。
Server: 服务器软件的名称和版本号。
Set-Cookie: 服务器发送给客户端的cookie信息,用于维持会话状态。


响应体


响应体包含了服务器返回给客户端的实际数据,如HTML页面、图片等。


【linux】信号的理论概述和实操-CSDN博客

【linux】进程间通信(IPC)——匿名管道,命名管道与System V内核方案的共享内存,以及消息队列和信号量的原理概述-CSDN博客

【Linux】用5万字满足你对线程的所有♥幻想♥——【线程概念】【线程安全】【多线程并发】【互斥量】【条件变量】【信号量】【锁的原理】【各种锁】【生产者消费者模型】【读者写者问题】-CSDN博客

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值