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 -> 把所有请求放到发送队列里,不等响应,一个一个发送请求的同时接收相应的响应)

相关推荐
枷锁—sha9 分钟前
【SRC】SQL注入快速判定与应对策略(一)
网络·数据库·sql·安全·网络安全·系统安全
郝学胜-神的一滴15 分钟前
深入解析C/S模型下的TCP通信流程:从握手到挥手的技术之旅
linux·服务器·c语言·网络·网络协议·tcp/ip
池央20 分钟前
CANN 算子诊断与故障定位:oam-tools 在异构计算错误解析中的作用
网络
“αβ”23 分钟前
数据链路层协议 -- 以太网协议与ARP协议
服务器·网络·网络协议·以太网·数据链路层·arp·mac地址
释怀不想释怀29 分钟前
Linux网络基础(ip,域名)
linux·网络·tcp/ip
开开心心就好38 分钟前
AI人声伴奏分离工具,离线提取伴奏K歌用
java·linux·开发语言·网络·人工智能·电脑·blender
子榆.42 分钟前
CANN 性能分析与调优实战:使用 msprof 定位瓶颈,榨干硬件每一分算力
大数据·网络·人工智能
驱动探索者1 小时前
U盘发展史
网络·cpu·u盘
青春给了代码1 小时前
基于WebSocket实现在线语音(实时+保存)+文字双向传输完整实现
网络·websocket·网络协议
北京耐用通信1 小时前
破解AGV多协议互联难题:耐达讯自动化Profinet转Devicenet网关如何实现高效协同
人工智能·科技·物联网·网络协议·自动化·信息与通信