HTTP请求

前言

  • HTTP 基于 TCP/IP 通信协议来传递数据

  • HTTP 基于客户端/服务器(C/S)结构模型

  • 通过一个可靠的链接来交换信息,是一个无状态的请求/响应协议

  • 限制每次连接只处理一个请求,服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节约传输时间

  • 只要客户端和服务器知道如何处理的数据内容,任何类型的数据都可以通过HTTP发送。客户端以及服务器指定使用适合的MIME-type内容类型。

  • Multipurpose Internet Mail Extension type 多用途互联网邮件扩展类型

  • 协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快

  • HTTP报文定义:在客户端与服务端之间发送的数据块。这些数据块以一些文本的元信息(meta-information)开头,描述了报文的内容及含义,后面跟着可选的数据部分,这些报文在客户端、服务器和代理之间流动。所以HTTP报文的发送也叫报文流

  • 每条HTTP报文包含一个客户端请求和服务器响应(请求报文Request 和 响应报文Response)

报文的组成

  1. 对报文进行描述的起始行

  2. 包含属性的首部 / 头部(header)

  3. 包含数据的主体(body) (可选项)

基本格式

报文的分类

  • GENERAL(通用报)
  • REQUEST HEADERS(请求报)
  • RESPONSE HEADERS(响应报)

请求方式

GET/POST

OPTIONS:返回服务器针对特定资源所支持的HTTP请求方式

HEAD:返回与 GET 请求相一致的响应,响应体被返回

PUT:向指定资源位置上传其最新内容(form表单不支持)

DELETE:请求服务器删除Request-URI 所识别的资源(form表单不支持)

TRACE:回显服务器收到的请求,主要用于测试或者诊断

CONNECT:连接改为管道方式的代理服务器

  • put 上传资源,form表单不支持,提交即存储的原则(无验证机制,安全漏洞)、需配置服务器支持 put 方式转发打给后端操作

  • delete 删除资源,form表单不支持、提交即删除的原则(无验证机制,安全漏洞)、需配置服务器支持 delete 方式转发打给后端操作

  • post 修改资源

  • get 获取资源

get/post访问

  1. POST 更安全:不会作为 url 的一部分,不会被缓存。保存在服务器日志和浏览器记录中

  2. POST 发送的数据更大(GET有 url 长度限制):

    长度限制:IE(2083字节)、firefox(65536字节)、chrome(8182字节)、safari(80000字节)、opera(190000字节)

  3. POST 能发送更多的数据类型(各种类型的文件)

  4. POST 比 GET 速度慢

    1. POST 请求头包含更多内容

    2. POST 接收数据之前会先请求头发送给服务器确认,然后发送数据

      • 第三次握手,浏览器确认并发送 post 请求头
      • 服务器返回状态码100后,continue响应
      • 浏览器开始发送数据
      • 服务器返回 200 Ok 响应
    3. get 过程

      • 第三次握手,浏览器确认并发送请求头和数据
      • 服务器返回 200 OK 响应
    4. GET会进行数据缓存,POST不会

    5. POST不能进行管道化传输

串行连接

持久化连接

connection:keep-alive:(HTTP/1.0、1.1) 连接不会关闭

管道化持久化连接

(http/1.1 -> 把所有请求放到发送队列里,不等响应,一个一个发送请求的同时接收相应的响应)

相关推荐
Ha_To1 小时前
2025.12.22 OSPF多区域原理与配置方法
网络
Smile_2542204183 小时前
vlc的使用
网络·webrtc·实时音视频
清水白石0083 小时前
《requests vs httpx:Python 网络请求库的全面对比与实战指南》
网络·python·httpx
德迅云安全—珍珍4 小时前
什么是udp攻击,为什么udp攻击难防御
网络·网络协议·udp
运维行者_5 小时前
OPM 与传统管理工具的区别,在网络修复与自动化运维方面的优势在哪里?
运维·服务器·开发语言·网络·自动化·php·ssl
广州灵眸科技有限公司5 小时前
瑞芯微(EASY EAI)RV1126B 音频输入
linux·开发语言·网络·音视频
网安INF6 小时前
SSL/TLS密钥派生机制与安全攻防体系深度解析
网络·安全·网络安全·密码学·ssl
TG:@yunlaoda360 云老大7 小时前
华为云国际站代理商NAT的规格有哪些?
服务器·网络·华为云
talenteddriver7 小时前
web: http请求(自用总结)
前端·网络协议·http
CICI131414137 小时前
焊接机器人负载能力选择标准
网络·数据库·人工智能