HTTP 结构概述

http · 浏览次数 : 0

小编点评

**Web 客户端和服务器Web 内容都是存储在 Web 服务器上的** * Web 服务器使用 HTTP 协议来存储因特网的数据。 * 客户端向服务器发送 HTTP 请求,服务器会在 HTTP 响应中返回请求的数据。 **常见的 HTTP 客户端** * 浏览器资源最简单的 Web 资源就是 Web 服务器文件系统中的静态文件,包括:文本文件、HTML 文件、图片文件、视频文件等等。 **HTTP 方法** * GET:用于请求服务器发送某个资源 * PUT:用于向服务器上传资源 * DELETE:用于请求服务器删除指定的资源 * POST:用于向服务器提交数据 **HTTP 报文** *起始行:说明要做些什么 * 首部:包含所有类型的数据 * 主体:包含要发送给 Web 服务器的数据

正文

Web 客户端和服务器

Web 内容都是存储在 Web 服务器上的,Web 服务器所使用的是 HTTP 协议,因此经常被称为 HTTP 服务器,HTTP 服务器存储了因特网的数据。客户端向服务器发送 HTTP 请求,服务器会在 HTTP 响应中返回请求的数据。最常见的 HTTP 客户端就是浏览器


资源

最简单的 Web 资源就是 Web 服务器文件系统中的静态文件,包括:文本文件、HTML 文件、图片文件、视频文件等等。资源不一定非得是静态文件,还可以是根据需要生成内容的软件程序。这些动态内容资源可以根据你的身份、所请求的信息或每天的不同时段来产生内容


媒体类型

因特网上有数千种不同的数据类型,HTTP 会给每种要通过 Web 传输的对象都打上了名为 MIME 类的数据格式标签。当 Web 浏览器从服务器中取回一个对象时,会查看相关的 MIME 类型,看看它是否知道应该如何处理这个对象。大多数浏览器都可以处理数百种常见的对象类型:显示图片文件、解析并格式化 HTML 文件、通过计算机声卡播放音频文件、或者运行外部插件软件来处理特殊格式的数据

MIME 类型是一种文本标记,表示一种主要的对象类型和一个特定的子类型,中间由一条斜杠来分隔:

  • HTML 格式的文本文档由 text/html 类型来标记
  • 普通的 ASCII 文本文档由 text/plain 类型来标记
  • .JPEG 格式的图片为 image/jpeg 类型
  • .GIF 格式的图片为 image/gif 类型

URI

每个 Web 服务器资源都有一个名字,这样客户端就可以说明它们感兴趣的资源是什么了。服务器资源名被称为统一资源标识符(URI),就像邮政地址一样,唯一标识并定位资源信息

常见的图片资源 URI 如:http://www.joes-hardware.com/specials/saw-blade.gif


URL

统一资源定位符(URL)是资源标识符最常见的形式,描述了一台特定服务器上某资源的特定位置

大部分 URL 都遵循一种标准格式,这种格式包含三个部分:

  • 第一部分被称为方案(scheme),说明访问资源所使用的协议类型,通常是 HTTP 协议(http://)
  • 第二部分给出服务器的因特网地址,比如:www.joes-hardware.com
  • 其余部分指定 Web 服务器上的某个资源,比如:/specials/saw-blade.gif

现在,几乎所有的 URI 都是URL


URN

URI 的第二种形式就是统一资源名(URN),URN 作为特定内容的唯一名称使用,与目前的资源所在地无关,因此可以将资源四处搬移


方法

HTTP 支持几种不同的请求命令,这些命令被称为 HTTP 方法,每条 HTTP 请求报文都包含一个方法,这个方法会告诉服务器要执行什么动作(获取一个 Web 页面、运行一个程序、删除一个文件等)

  • GET:用于请求服务器发送某个资源
  • PUT:用于向服务器上传资源
  • DELETE:用于请求服务器删除指定的资源
  • POST:用于向服务器提交数据,通常用于提交表单或上传文件
  • HEAD:类似于 GET 请求,但服务器不返回请求的资源主体,只返回响应头

状态码

每条 HTTP 响应报文返回时都会携带一个状态码,状态码是一个三位数字的代码,告知客户端请求是否成功,或者是否需要采取其他动作


报文

HTTP 报文是由一行行的简单字符串组成,HTTP 报文都是纯文本,所以人们可以很方便地对其进行读写。从 Web 客户端发往 Web 服务端的 HTTP 报文称为请求报文,从服务端发往客户端的报文称为响应报文

HTTP 报文包括以下三个部分:

  • 起始行:报文的第一行就是起始行,在请求报文中说明要做些什么,在响应报文中说明出现了什么情况
  • 首部字段:起始行后面有零个或多个首部字段,每个首部字段是一个键值对,首部以一个空行结束
  • 主体:空行之后就是可选的报文主体了,其中包含了所有类型的数据。请求主体中包括了要发送给 Web 服务器的数据,响应主体中装载了要返回给客户端的数据。起始行和首部都是文本形式且都是结构化的,而主体则不同,主体中可以包含任意的二进制数据(比如图片、视频、音轨、软件程序)。当然,主体也可以包含文本

连接

HTTP 是个应用层协议,HTTP 无需操心网络通信的具体细节,它把网络通信的细节都交给了通用可靠的因特网传输协议 TCP/IP

因特网自身就是基于 TCP/IP 的,TCP/IP 是全世界的计算机和网络设备常用的层次化分组交换网络协议集。TCP/IP 隐藏了各种网络和硬件的特点,使各种类型的计算机和网络都能够进行可靠的通信

只要建立了 TCP 连接,客户端和服务器之间的报文交换就不会丢失,不会被破坏,也不会在接收时出现错序了

用网络术语来说,HTTP 协议位于 TCP 的上层,HTTP 使用 TCP 来传输其报文数据。与之类似,TCP 则位于 IP 的上层

与HTTP 结构概述相似的内容:

HTTP 结构概述

Web 客户端和服务器 Web 内容都是存储在 Web 服务器上的,Web 服务器所使用的是 HTTP 协议,因此经常被称为 HTTP 服务器,HTTP 服务器存储了因特网的数据。客户端向服务器发送 HTTP 请求,服务器会在 HTTP 响应中返回请求的数据。最常见的 HTTP 客户端就是浏览器 资

[转帖]PostgreSQL进程结构

http://www.pgsql.tech/article_101_10000099 1、简介 本文简单的介绍了 PostgreSQL 的主要进程类型与功能。 2、PostgreSQL进程分为主进程与辅助进程。 2.1、主进程: PostMaster进程是整个数据库实例的总控进程,负责启动关闭该数据

[转帖]Jmeter学习笔记(十七)——jmeter目录结构

原文链接:http://www.cnblogs.com/zichuan/p/6938772.html 一、bin目录examples: 目录中有CSV样例 jmeter.bat windows的启动文件 jmeter.log jmeter运行日志文件 jmeter.sh linux的启动文件 jme

HTTP 报文详解

报文的语法 所有的 HTTP 报文都可以分为两类:请求报文和响应报文。请求报文会向 Web 服务器请求一个动作,响应报文会将请求的结果返回给客户端。请求和响应报文的基本报文结构相同 请求报文的格式:

【后端面经-计算机基础】HTTP和TCP的区别

本文主要介绍了计算机网络中的两个经典协议:http和tcp,简单介绍两者的报文结构,并结合面试题对两者进行详细说明。

【ASP.NET Core】MVC控制器的各种自定义:IActionHttpMethodProvider 接口

IActionHttpMethodProvider 接口的结构很简单,实现该接口只要实现一个属性即可——HttpMethods。该属性是一个字符串序列。 这啥意思呢?这个字符串序列代表的就是受支持的 HTTP 请求方式。比如,如果此属性返回 GET POST,那么被修饰的对象既支持 HTTP-GET

XML Schema(XSD)详解:定义 XML 文档结构合法性的完整指南

XML Schema描述了 XML 文档的结构。XML Schema语言也称为 XML Schema Definition(XSD)。

基于改进MFCC特征和卷积递归神经网络的心音分类

具体的软硬件实现点击http://mcu-ai.com/MCU-AI技术网页_MCU-AI人工智能 心音分类在心血管疾病的早期发现中起着至关重要的作用,特别是对于小型初级卫生保健诊所。尽管近年来心音分类取得了很大进展,但其中大多数都是基于传统的分段特征和基于浅层结构的分类器。这些传统的声学表示和分类

使用人工神经网络训练手写数字识别模型

博客地址:https://www.cnblogs.com/zylyehuo/ 效果展示 下载数据集(共四个) http://yann.lecun.com/exdb/mnist/ 目录结构 整体流程图 dataloader.py import numpy as np import struct imp

python 注册nacos 进行接口规范定义

背景: 一般场景 python服务经常作为java下游的 算法服务或者 数据处理服务 但是使用http 去调用比较不灵活,通过注册到nacos上进行微服务调用才是比较爽的 1.定义feginapi的接口定义 java端 定义接口请求和响应 主要关注 CommonResult 结构 和 python要