HTTP零碎知识点
HTTP请求基本格式
HTTP请求的基本格式包括请求行、请求头、空行和请求正文。常用的HTTP请求方法有GET、POST、PUT、DELETE等,常见的HTTP请求头域包括Host、User-Agent、Accept等。
基本格式:
请求行:由方法(如GET、POST)、URL(统一资源标识符)、HTTP版本(如HTTP/1.1)组成,用于定义请求的类型、目标资源和使用的协议版本。例如:GET /index.html HTTP/1.1。
-
请求头:包含各种键值对,用于传递额外的请求信息。这些头部信息可以包括Host(指定服务器的主机名和端口号)、User-Agent(发送请求的客户端信息)、Accept(客户端可接受的内容类型)、Authorization(用于身份验证)等。
-
空行:位于请求头和请求体之间,用于分隔这两个部分。即使没有请求体,这个空行也是必须的。
-
请求正文:在POST和PUT请求中,请求正文用于传输数据给服务器,比如表单数据或文件内容。其他方法(如GET)通常不包含请求体。
常用方法:
-
GET:用于请求指定资源的表示形式,不会改变服务器上的数据。常用于获取信息。
-
POST:用于提交数据以创建或更新服务器上的资源,常用于提交表单数据。
-
PUT:用于更新服务器上的现有资源,提供完整的数据替换。
-
DELETE:用于删除服务器上的资源。
-
HEAD:类似于GET,但不返回消息体,只返回响应头,用于获取资源的元信息。
-
OPTIONS:请求服务器告知其支持的通信选项。
-
TRACE:回显服务器收到的请求,用于诊断。
-
CONNECT:建立到代理服务器的隧道连接,通常用于SSL加密。
常见头域:
-
Host:指定请求的目的地,即服务器的域名和端口号。
-
User-Agent:描述发出请求的客户端软件类型和版本。
-
Accept:指定客户端能够接收的内容类型,如text/html、application/json等。
-
Authorization:用于身份验证,如Basic认证、Bearer token等。
-
Content-Type:指明请求体的媒体类型,如application/x-www-form-urlencoded。
-
Referer:指示引导用户至当前页面的前一个页面的URL。
-
Cookie:用于会话跟踪或在多个请求间共享状态信息。
-
Connection:控制连接行为,如keep-alive保持连接开启,close关闭连接。
HTTP响应的基本格式
HTTP响应的基本格式包括:状态行、响应头和响应正文。
-
状态行:包含HTTP版本、状态码和原因短语,用于表示请求的处理结果。例如:
HTTP/1.1 200 OK
。 -
响应头:包含一些键值对,用于描述服务器的相关信息和响应的属性。常用的响应头域(Header fields)及其含义如下:
Date
: 响应生成的时间。Content-Type
: 响应正文的MIME类型。Content-Length
: 响应正文的长度(字节数)。Server
: 服务器软件的名称和版本。Set-Cookie
: 设置客户端cookie的信息。Cache-Control
: 控制缓存的行为。Expires
: 响应过期的时间。Last-Modified
: 资源的最后修改时间。ETag
: 资源的标识符,用于验证缓存的有效性。
-
响应正文:包含实际的数据内容,如HTML文档、图片等。
最常用的十种HTTP响应代码及其含义如下:
200 OK
: 请求成功,服务器已成功处理了请求。通常,这表示服务器提供了请求的资源。201 Created
: 请求成功并且服务器创建了新的资源,此响应应当包含指向新资源的链接和此创建新资源的方法和属性。204 No Content
: 服务器成功处理了请求,但没有返回任何内容。在不需要返回数据的情况下使用。400 Bad Request
: 请求无效或语法错误。服务器无法理解请求的语法。401 Unauthorized
: 请求要求身份验证。客户端必须提供有效的认证信息。403 Forbidden
: 服务器理解请求,但拒绝执行它。客户端没有权限访问请求的资源。404 Not Found
: 服务器找不到请求的资源。请求的资源不存在。500 Internal Server Error
: 服务器遇到了一个未知的错误,无法完成请求。503 Service Unavailable
: 服务器目前无法使用(由于超载或停机维护)。通常,这只是暂时状态。301 Moved Permanently
: 请求的资源已被永久移动到新位置,将来任何对此资源的引用都应该使用返回的新URL。
MIME类型
MIME(Multipurpose Internet Mail Extensions)是一种互联网标准,用于定义电子邮件和其他应用程序中传输的数据类型和格式。它允许将不同类型的数据(如文本、图像、音频、视频等)嵌入到电子邮件或其他网络协议中进行传输。
MIME顶级类型是指根据数据内容的类型来分类的一组顶级类别。以下是8种常见的MIME顶级类型:
text
: 用于表示纯文本数据,例如HTML、XML、CSV等。image
: 用于表示图像数据,例如JPEG、PNG、GIF等。audio
: 用于表示音频数据,例如MP3、WAV、AAC等。video
: 用于表示视频数据,例如MP4、FLV、AVI等。application
: 用于表示各种应用程序数据,例如PDF、ZIP、JSON等。multipart
: 用于表示由多个部分组成的数据,例如邮件附件或多部分消息体。message
: 用于表示消息数据,例如电子邮件消息或新闻组文章。model
: 用于表示三维模型数据,例如VRML、X3D等。
这些顶级类型可以进一步细分为子类型,以更精确地描述具体的数据格式。例如,text/html
表示HTML文档,image/jpeg
表示JPEG图像,audio/mpeg
表示MPEG音频等。
Cookie定义
Cookie是一种小型的文本数据,由服务器发送给浏览器并保存在客户端。它用于存储会话信息,如用户身份、登录状态等,以便在后续请求中能够识别用户。
Cookie可以包含多种字符,包括字母、数字、下划线、美元符号($)、破折号(-)和句点(.)。这些字符用于构成Cookie的名称和值,以及其他属性信息。
Cookie的初值是由服务器设置的。当用户首次访问一个网站时,服务器会在响应头中添加Set-Cookie字段,将Cookie信息发送给浏览器。浏览器收到响应后,会将Cookie信息保存到本地,并在后续的请求中通过Cookie字段将Cookie信息发送回服务器。
来自网络编程课作业
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具