WWWC最终发布了一系列的RFC,其中最著名的就是RFC 2616。RFC 2616定义了HTTP协议的我们今天普遍使用的一个版本——HTTP 1.1。
尽管TCP/IP协议是互联网上最流行的应用,HTTP协议并没有规定必须使用它和(基于)它支持的层。 事实上,HTTP可以在任何其他互联网协议上,或者在其他网络上实现。HTTP只假定(其下层协议提供)可靠的传输,任何能够提供这种保证的协议都可以被其使用。
通常,由HTTP客户端发起一个请求,建立一个到服务器指定端口(默认是80端口)的TCP连接。HTTP服务器则在那个端口监听客户端发送过来的请求。一旦收到请求,服务器(向客户端)发回一个状态行,比如"HTTP/1.1 200 OK",和(响应的)消息,消息的消息体可能是请求的文件、错误消息、或者其它一些信息。
HTTP使用TCP而不是UDP的原因在于(打开一个)一个网页必须传送很多数据,而TCP协议提供传输控制,按顺序组织数据,和错误纠正
请求信息(Request Message)
引用
发出的请求信息包括以下几个
* 请求行,例如GET /images/logo.gif HTTP/1.1,表示从/images 目录下请求logo.gif 这个文件。
* (请求)头,例如Accept-Language: en
* 空行
* 可选的消息体
请求行和标题必须以<CR><LF> 作为结尾(也就是,回车然后换行)。空行内必须只有<CR><LF>而无其他空格。在HTTP/1.1 协议中,所有的请求头,除Host外,都是可选的。
请求方法(Request Methods)
引用
HTTP协议中定义了八种方法(有时也叫“动作”)来表示对指定数据的操作。
HEAD
(Head方法)要求响应与相应的GET请求的响应一样,但是没有的响应体(response body)。这用来获得响应头(response header)中的
元数据信息(meta-infomation)有(很)帮助,(因为)它不需要传输所有的内容。
GET
(Get方法用来)请求指定的资源。它是目前网上最常用的方法。它不应该用于一些会造成副作用的操作中
(在网络应用中用它来提交动作是一种常见的错误用法)。(细节请)参考后面的“安全方法”(这一节)。
POST
(POST方法用来)向指定的资源提交需要处理的数据。这些数据写在请求的内容里。(POST请求)可以导致新资源的产生和已有资源的更新。
PUT
上传指定资源
DELETE
删除指定资源
TRACE
(Trace方法告诉服务器端)返回收到的请求。客户端可以(通过此方法)察看在请求过程中中间服务器添加或者改变哪些内容。
OPTIONS
返回服务器(在指定URL上)支持的HTTP方法。通过请求“*”而不是指定的资源,这个方法可以用来检查网络服务器的功能。
CONNECT
将请求的连接转换成透明的TCP/IP通道,通常用来简化通过非加密的HTTP代理的SSL-加密通讯(HTTPS)。
HTTP服务器至少应该实现Get和Head方法,可能的话,也实现OPTIONS方法。
安全方法
有些方法(比如HEAD, GET, OPTIONS, and TRACE) 被定义为安全方法,这些方法针对的只是信息的返回,并不会改变服务器的状态(换句话说就是这些方法不会产生副作用)。不安全的方法(例如POST, PUT and DELETE) 应该用特殊的方式向用户展示,通常是按钮而不是链接,这样就可以使用户意识到可能要负的责任(例如一个按钮带来的资金交易。)
状态行
引用
所有 HTTP 响应的第一行都是状态行, 依次是当前 HTTP 版本号,3位数字组成的状态代码,以及描述状态的短语,彼此由空格分隔。
状态代码的第一个数字代表当前响应的类型:
* 1xx 消息——请求已被服务器接收,继续处理
* 2xx 成功——请求已成功被服务器接收、理解、并接受
* 3xx 重定向——需要后续操作才能完成这一请求
* 4xx 请求错误——请求含有词法错误或者无法被执行
* 5xx 服务器错误——服务器在处理某个正确请求时发生错误
虽然 RFC 2616 中已经推荐了描述状态的短语,例如"200 OK","404 Not Found",但是 WEB 开发者仍然能够自行决定采用何种短语,用以显示本地化的状态描述或者自定义信息。
分享到:
相关推荐
### HTTP协议详细介绍 #### 一、HTTP协议概览 HTTP(HyperText Transfer Protocol)即超文本传输协议,是互联网上应用最为广泛的一种网络协议。它主要用于客户端与服务器之间的信息交互,尤其是在Web应用中,它是...
### Http协议-记录常见的状态码 HTTP(HyperText Transfer Protocol)是一种用于分布式、协作式和超媒体信息系统的应用层协议,主要用于从Web服务器传输超文本到本地浏览器的传输协议。在HTTP通信过程中,服务器会...
**HTTP协议概述** HTTP(Hypertext Transfer Protocol)是一种应用层协议,它是互联网上应用最为广泛的一种网络协议,用于从万维网服务器传输超文本到本地浏览器的传输协议。HTTP协议是基于TCP/IP协议的,它定义了...
HTTP协议学习资料主要为初学者提供了对HTTP协议基本概念、工作原理以及相关开发工作的详细介绍,内容全面,帮助开发者和测试人员深入理解Web程序间通信的机制。HTTP协议作为Web开发的基础,对于每个IT专业人员都是一...
HTTP协议,全称为超文本传输协议(Hypertext Transfer Protocol),是互联网上应用最为广泛的一种网络协议。它定义了客户端(通常是Web浏览器)和服务器之间的通信格式,使得数据能够从服务器传输到用户的浏览器,...
HTTP协议运行在TCP/IP协议栈之上,通过TCP/IP进行通信。在Web开发中,无论是发送HTML、CSS、JavaScript,还是图片、视频等资源,都需要借助HTTP协议来传输。 HTTP协议的主要组成部分包括请求(Request)和响应...
**SIP: 会话初始化协议介绍** 会话初始化协议(Session Initiation Protocol,简称SIP)是一种在IP网络上实现多媒体通信的核心协议,主要应用于建立、修改和终结多媒体会话和呼叫。SIP的设计灵感来源于HTTP和SMTP,...
这份资料深入浅出地介绍了HTTP协议,从其诞生背景到协议结构,再到实际应用,为初学者提供了全面的学习路径。 首先,HTTP协议的发展经历了多个版本,从最初的HTTP/0.9到目前广泛应用的HTTP/1.1,以及最新的HTTP/2。...
以上就是HTTP协议中头部字段的详细介绍,它们在客户端与服务器之间的通信过程中起着至关重要的作用。通过对这些字段的理解和合理使用,可以有效地管理网络资源,提高传输效率,同时确保数据的安全性和准确性。
以下将详细介绍HTTP协议调试器的功能、工作原理以及如何使用。 HTTP协议是万维网(World Wide Web)应用的基础,它规定了客户端(通常是浏览器)与服务器之间的数据交换格式和规则。当用户通过浏览器访问网站时,...
### CAS单点登录HTTP协议版本配置指南 #### 一、CAS版本及所需组件 本配置指南涉及的CAS版本如下: - **服务端**:cas-server-3.4.7 - **客户端**:cas-client-3.2.0 对于服务端而言,仅需解压`cas-server-webapp...
2. **HTTP协议**:作为互联网上应用最广泛的数据交换协议,HTTP的请求和响应模型、状态码、报文结构等内容将会被深入解析。 3. **TCP协议**:传输控制协议,确保数据的可靠传输,其连接建立、数据传输、流量控制和...
本文将详细介绍这款产品的TCP通讯协议,帮助用户更好地理解和应用。 1. 基本说明 1.1 收发命令包与数据包格式 TCP通讯协议的基础是数据包的结构,通常包括包头和包体两部分。包头通常包含命令码、包长度、序列号...
本文将详细介绍如何使用Java通过HTTP协议的URL下载文件,并深入探讨代码实现中的关键点。 #### 一、核心概念 1. **HTTP协议**:超文本传输协议(HyperText Transfer Protocol),用于从WWW服务器传输超文本到本地...
### SIP协议分析与基础知识 #### 一、SIP协议简介 SIP (Session Initiation ...以上是对SIP协议及其相关概念的详细介绍。通过对这些核心概念的理解,可以更好地掌握SIP协议的工作原理及其在网络通信中的应用。
下面将详细介绍网络协议中的几个关键报文格式及其重要性。 1. TCP/IP协议栈: - IP(Internet Protocol):IP协议是网络层的核心,负责数据包的路由和传输。报文头部包含源和目的IP地址,以及一些控制信息。 - ...
#### 第1章 HTTP通讯协议介绍 ##### 课程目标 - **理解HTTP协议的特点**:掌握HTTP协议的基本特征及其在网络通讯中的作用。 - **了解HTTP通讯流程**:熟悉HTTP请求与响应的过程,以及双方交互的机制。 - **掌握HTTP...
### HTTP协议头字段及分析 #### 一、概述 HTTP(HyperText Transfer Protocol)作为互联网上应用最为广泛的一种网络协议,主要用于规定客户端与服务器之间如何通信。它是一种基于请求与响应模型的应用层协议,用于...