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

相关推荐
~央千澈~1 小时前
【06】原创音乐人完整的原创音乐全流程制作-歌词创作-用心创作-完善创作-卓伊凡
网络·人工智能·au·cubase
刘某的Cloud1 小时前
全局禁用ipv6
linux·运维·网络·系统·ipv6
Sator11 小时前
Unity的FishNet相关知识
网络·unity·游戏引擎
周杰伦_Jay1 小时前
【免费云平台部署指南】按场景选型+全维度对比(附直达地址)
网络·人工智能·架构·开源·云计算
小二·1 小时前
Java基础教程之网络编程
java·开发语言·网络
梁辰兴1 小时前
计算机网络基础:非引导型传输媒体
网络·计算机网络·计算机·传输媒体·计算机网络基础·非引导型
乾元1 小时前
多厂商配置对齐器:AI 如何在 Cisco / Huawei / Juniper 间做语义映射
运维·开发语言·网络·人工智能·网络协议·华为·智能路由器
Jtti1 小时前
高防ip和普通ip两者有何区别?
运维·网络协议·tcp/ip
阿巴~阿巴~1 小时前
HTTP进化史:从0.9到3.0的技术跃迁
linux·服务器·网络·网络协议·http