HTTP 协议的基本知识,包括请求流程、请求方法等

什么是http协议?

  HTTP是Hyper Text Transfer Protocol(超文本传输协议)的缩写。它的发展是万维网协会(World Wide Web Consortium)和Internet工作小组IETF(Internet Engineering Task Force)合作的结果,(他们)最终发布了一系列的RFC,RFC 1945定义了HTTP/1.0版本。其中最著名的就是RFC 2616。RFC 2616定义了今天普遍使用的一个版本——HTTP 1.1。

  超文本传输协议是一种详细规定了浏览器和万维网服务器之间互相通信的规则,通过因特网传送万维网文档的数据传送协议。

  HTTP协议(HyperText Transfer Protocol,超文本传输协议)是用于从WWW服务器传输超文本到本地浏览器的传送协议。它可以使浏览器更加高效,使网络传输减少。它不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分,以及哪部分内容首先显示(如文本先于图形)等。

  HTTP是一个应用层协议,由请求和响应构成,是一个标准的客户端服务器模型。HTTP是一个无状态的协议。

http协议特点

  HTTP协议的主要特点可概括如下:

  1、支持客户/服务器模式。

  2、 简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。

  3、灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。

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

  5、无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。

  另一方面,在服务器不需要先前信息时它的应答就较快。

HTTP请求的方法:

HTTP/1.1协议中共定义了八种方法(有时也叫“动作”),来表明Request-URL指定的资源不同的操作方式

1、OPTIONS

返回服务器针对特定资源所支持的HTTP请求方法,也可以利用向web服务器发送‘*’的请求来测试服务器的功能性

2、HEAD

向服务器索与GET请求相一致的响应,只不过响应体将不会被返回。这一方法可以再不必传输整个响应内容的情况下,就可以获取包含在响应小消息头中的元信息。

3、GET

向特定的资源发出请求。它本质就是发送一个请求来取得服务器上的某一资源。资源通过一组HTTP头和呈现数据(如HTML文本,或者图片或者视频等)返回给客户端。GET请求中,永远不会包含呈现数据。

4、POST

向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改。 Loadrunner中对应POST请求函数:web_submit_data,web_submit_form

5、PUT

向指定资源位置上传其最新内容

6、DELETE

请求服务器删除Request-URL所标识的资源

7、TRACE

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

8、CONNECT

HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。

注意:

1)方法名称是区分大小写的,当某个请求所针对的资源不支持对应的请求方法的时候,服务器应当返回状态码405(Mothod Not Allowed);当服务器不认识或者不支持对应的请求方法时,应返回状态码501(Not Implemented)。

2)HTTP服务器至少应该实现GET和HEAD/POST方法,其他方法都是可选的,此外除上述方法,特定的HTTP服务器支持扩展自定义的方法。

get 和 post区别

  区别:

    get请求无消息体,只能携带少量数据

    post请求有消息体,可以携带大量数据

  携带数据的方式:

    get请求将数据放在url地址中

     post请求将数据放在消息体中

GET请求请提交的数据放置在HTTP请求协议头中,而POST提交的数据则放在实体数据中; 
GET方式提交的数据最多只能有1024字节,而POST则没有此限制。

HTTP协议请求流程

    1.打开HTTP连接。一定要记住HTTP是一种无状态协议。正因为如此,对于每一个请求你都要建立一个新的连接。

  2.设置HTTP请求头。这里面包含要传送的数据类型(二进制)和数据的总长。

  3.发送请求。将二进制流写到服务器。

  4.读取请求。目标servlet程序将被调用并接受HTTP请求数据。servlet程序就调用所有必要的参数选择相应的方法。注意,如果这是这个客户端的第一次请求,一个服务器对象的新的实例就会被创建。

  5.调用方法。方法将会被服务器端的对象调用。

  6.初始化方法响应。如果调用的方法抛出一个异常,客户将接收到出错信息。否则,返回的类型(如果有)将会被发送。

  7.设置HTTP响应头。在响应头中,一定会设置待发送数据的类型和长度。

  8.发送响应。二进制数据流将从Web服务器发送并返回给客户端。

原文地址:https://www.cnblogs.com/wfhking/p/9464147.html

时间: 2024-10-18 04:49:34

HTTP 协议的基本知识,包括请求流程、请求方法等的相关文章

ASP.NET MVC学前篇之请求流程

ASP.NET MVC学前篇之请求流程 请求流程描述 对于请求的流程,文章的重点是讲HttpApplication和HttpModule之间的关系,以及一个简单的示例实现.(HttpModule又是MVC框架的入口点) 图1 在请求到达Web服务器过后进入ASP.NET的时候是通过ASP.NET来构造出一个HttpWorkerRequest对象,HttpWorkerRequest是抽象类类型,表示着一些请求处理的信息,然后由ASP.NET中的HttpRuntime类型来调用静态函数Process

接口测试基础知识详解http请求由三部分组成,分别是:请求行、消息报头、请求正文 1、请求行以一个方法符号开头,以空格分开,后面跟着请求的URI和协议的版本,格式如下:Method Request-URI HTTP-Version CRLF 其中 Method表示请求方法;Request-URI是一个统一资源标识符;HTTP-Version表示请求的HTTP协议版本;CRLF表示回车和换行(除了

HTTP URL (URL是一种特殊类型的URI,包含了用于查找某个资源的足够的信息)的格式如下:http://host[":"port][abs_path]http表示要通过HTTP协议来定位网络资源:host表示合法的Internet主机域名或者IP地址:port指定一个端口号,为空则使用缺省端口80:abs_path指定请求资源的URI:如果URL中没有给出abs_path,那么当它作为请求URI时,必须以"/"的形式给出,通常这个工作浏览器自动帮我们完成.e

HTTP请求流程基础知识

HTTP协议解析: HTTP即超文本传输协议,是一种详细规定了浏览器和万维网服务器之间互相通信的规则,它是万维网交换信息的基础,它允许将HTML文档从WEB服务器传输到WEB浏览器. URL(统一资源定位符)也被称为网页地址,是互联网标准的地址. URL的标准格式如下: 协议://服务器IP[:端口]/路径/[?查询] 浏览器可以发起HTTP请求,也可以借助其他工具发起HTTP请求,例如,linux系统的curl命令 HTTP协议目前最新版本是1.1,HTTP是一种无状态的协议.无状态是指WEB

HTTP请求流程你了解了么?

预备知识 前文没有描述到传输和协议直接的层级对应关系,大概补充下网络通信中数据传输对应的协议,首先了解下OSI(开放式系统互联:Open System InterConnection)七层 模式,及其对应不同层次的协议. OSI体系结构 TCP/IP相关协议结构 应用层 HTTP,Telnet,FTP等 表示层 ? 会话层 ? 传输层 TCP,UDP 网络层 IP 数据链路层 ? 物理层 ? 了解到HTTP协议是建立在TCP连接基础之上的.HTTP 是一种允许浏览器向服务器获取资源的协议,是 W

DRF之REST规范介绍及View请求流程分析

编程是数据结构和算法的结合,而在Web类型的App中,我们对于数据的操作请求是通过url来承载的,本文详细介绍了REST规范和CBV规范和CBV请求流程. 编程即数据结构和算法的结合.简单的程序可能不需要跟用户交互数据,但是现代的应用程序几乎都需要跟用户进行交互,不分应用程序类型,不管是CS型还是BS型的程序都是如此,而Python最擅长的Web App即BS型的程序,就是通过url和http来跟用户进行数据交互的,通过url和http请求,用户可以操作服务器端的程序,主要操作分为:增.删.改.

Okhttp 请求流程梳理

最近在看 Okhttp 的源码.不得不说源码设计的很巧妙,从中能学到很多.其实网上关于 Okhttp 的文章已经很多了,自己也看了很多.但是俗话说得好,好记性不如烂笔头,当你动手的时候,你会发现你在看的时候没有注意到的很多细节. 本次要分析的 Okhttp 版本是 3.8.1,在 gradle 中引用如下: implementation 'com.squareup.okhttp3:okhttp:3.8.1' implementation 'com.squareup.okio:okio:1.7.0

http协议的相关知识

由于现在的工作设计的Web开发,因此了解了一下Http协议.在阅读了这篇文章HTTP协议详解(真的很经典)后,总结了相关常用知识并列在此处以方便以后的查询. HTTP协议的主要特点可概括如下: 1.支持客户/服务器模式. 2.简单快速:客户向服务器请求服务时,只需传送请求方法和路径.请求方法常用的有GET.HEAD.POST.每种方法规定了客户与服务器联系的类型不同.由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快. 3.灵活:HTTP允许传输任意类型的数据对象.正在传输的

SOAP协议和基于SOAP的开发流程详述

[文章摘要] 简单对象访问协议(SOAP)是交换数据的一种协议规范,是一种轻量的.简单的.基于XML的协议,它被设计成在WEB上交换结构化的和固化的信息. 在实际的软件开发项目中,SOAP大多用于处理用户数据,也即实现开户.销户.改户和查户等功能. 本文根据作者实际从事过的基于SOAP的项目开发,对SOAP协议和基于SOAP的开发流程进行了详细的介绍.希望大家通过此文,能够对基于SOAP协议的开发有一个全面的了解. 一.soapUI和SOAP代码生成框架简介 "工欲善其事,必先利其器"

一次完整的浏览器请求流程

当我们在浏览器的地址栏输入 www.linux178.com ,然后回车,回车这一瞬间到看到页面到底发生了什么呢?整个流程如下: 域名解析 --> 发起TCP的3次握手 --> 建立TCP连接后发起http请求 --> 服务器响应http请求,浏览器得到html代码 --> 浏览器解析html代码,并请求html代码中的资源(如js.css.图片等) --> 浏览器对页面进行渲染呈现给用户 以下就是上面过程的一一分析,我们就以Chrome浏览器为例: 域名解析 首先Chrom