应用层协议小结之HTTP协议

一、HTTP:

HTTP请求报文

一个HTTP请求报文由请求行(request line)、请求头部(header)、空行和请求数据4个部分组成,下图给出了请求报文的一般格式。

or

<request-line>

<headers>

<blank line>

[<request-body>

1.请求头

请求行由请求方法字段、URL字段和HTTP协议版本字段3个字段组成,它们用空格分隔。例如,GET /index.html HTTP/1.1。

HTTP协议的请求方法有GET、POST、HEAD、PUT、DELETE、OPTIONS、TRACE、CONNECT。

2.请求头部

请求头部由关键字/值对组成,每行一对,关键字和值用英文冒号“:”分隔。请求头部通知服务器有关于客户端请求的信息,典型的请求头有:

User-Agent:产生请求的浏览器类型。

Accept:客户端可识别的内容类型列表。

Host:请求的主机名,允许多个域名同处一个IP地址,即虚拟主机。

3.空行

最后一个请求头之后是一个空行,发送回车符和换行符,通知服务器以下不再有请求头。

4.请求数据

请求数据不在GET方法中使用,而是在POST方法中使用。POST方法适用于需要客户填写表单的场合。与请求数据相关的最常使用的请求头是Content-Type和Content-Length。

HTTP响应报文

HTTP响应也由三个部分组成,分别是:状态行、消息报头、响应正文。

如下所示,HTTP响应的格式与请求的格式十分类似:

<status-line>

<headers>

<blank line>

[<response-body>]

正如你所见,在响应中唯一真正的区别在于第一行中用状态信息代替了请求信息。状态行(status line)通过提供一个状态码来说明所请求的资源情况。

状态行格式如下:

HTTP-Version Status-Code Reason-Phrase CRLF

其中,HTTP-Version表示服务器HTTP协议的版本;Status-Code表示服务器发回的响应状态代码;Reason-Phrase表示状态代码的文本描述。状态代码由三位数字组成,第一个数字定义了响应的类别,且有五种可能取值。

  • 1xx:指示信息--表示请求已接收,继续处理。
  • 2xx:成功--表示请求已被成功接收、理解、接受。
  • 3xx:重定向--要完成请求必须进行更进一步的操作。
  • 4xx:客户端错误--请求有语法错误或请求无法实现。
  • 5xx:服务器端错误--服务器未能实现合法的请求。

常见状态代码、状态描述的说明如下。

    • 200 OK:客户端请求成功。
    • 400 Bad Request:客户端请求有语法错误,不能被服务器所理解。
    • 401 Unauthorized:请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用。
    • 403 Forbidden:服务器收到请求,但是拒绝提供服务。
    • 404 Not Found:请求资源不存在,举个例子:输入了错误的URL。
    • 500 Internal Server Error:服务器发生不可预期的错误。
    • 503 Server Unavailable:服务器当前不能处理客户端的请求,一段时间后可能恢复正常,举个例子:HTTP/1.1 200 OK(CRLF)。
时间: 2024-11-03 21:05:15

应用层协议小结之HTTP协议的相关文章

不务正业 (1) —— 在应用层模拟实用停等协议

[总目录]http://www.cnblogs.com/tbcaaa8/p/4415055.html 1. 背景说明 本文章来源于近期需要提交的<计算机网络>课程实验. 实验分为3部分,分别需要在应用层模拟实用停等协议.连续ARQ协议和滑动窗口协议,实现文件的传输.端与端之间的通信使用Socket完成. 语言可以任选,出于简单,本文以java为例,仅介绍使用停等协议的实现,其他内容由同学们自己探索吧.强烈不推荐MFC,除非想把自己玩死. 注:本人上课睡觉时间远远长于听课时间,故不对文章的正确性

HTTP 协议小结

本篇博客来自前辈整理资料的学习之作,若有冒犯,敬请谅解!原文博客已删除,转载篇:HTTP协议详解 1,HTTP特点 HTTP是一个属于应用层的面向对象的协议,由于其简捷.快速的方式,适用于分布式超媒体信息系统. HTTP协议的主要特点可概括如下: 1)支持客户/服务器模式. 2)简单快速: 客户向服务器请求服务时, 只需传送请求方法和路径. 请求方法常用的有GET. HEAD.POST. 每种方法规定了客户与服务器联系的类型不同. 由于HTTP协议简单, 使得HTTP服务器的程序规模小,因而通信

HTTP协议小结

目录 预备知识2 数据转发2 数据缓存3 HTTP协议的请求方法3 请求方法:4 HTTP报文结构解析5 内容编码6 分块传输编码*7 多部分对象集合*8 范围请求(断点续传)8 内容协商9 HTTP状态码10 HTTP 首部字段11 通用首部字段11 请求首部字段13 响应首部字段15 实体首部字段16 为Cookie服务的首部字段16 其他首部字段*17 HTTPS协议18 HTTP认证19 HTTP的扩展协议*21 预备知识 HTTP协议属于TCP/IP协议族应用层的协议. 当前最新的HT

ios-代理模式 协议小结

监听控件的某些事件使用代理模式,是为了在程序直接"解耦" 表格可以显示非常丰富的数据,为了达到这一效果,设置表格的"数据源"@required 必须实现的方法@optional 可选的实现方法->不强求实现->如果实现了能得到特殊的效果,如果不实现,也不影响程序的正常运行 能够增加控件的灵活度 代理阶段性小结 1. 遵守协议,预先定义好方法,不实现,具体的实现工作由代理负责<控件的名字+DataSource> 定义的与数据有关的方法<控

KERMIT,XMODEM,YMODEM,ZMODEM传输协议小结(转)

源:KERMIT,XMODEM,YMODEM,ZMODEM传输协议小结 Kermit协议 报文格式: 1.MARK,起始标记START_CHAR,为 0x01(CTRIL-A): 2.LEN,报文剩余部分的长度,取值范围0~94,报文最大长度96,长度不包含换行符或者制表符: 3.SEQ,数据包编号,取模64,: 4.TYPE,k_state数据包类型 D 数据报文 Y ACK报文(不能转换编码) N NAK,未收到 S 发送初始化报文 B 传输结束 F 文件头部 Z 文件结束 E Error

Oracle PO - 模块一揽子采购协议小结

本文总结oracle ebs采购订单(po)模块一揽子采购协议的相关知识,总结如下: 1.理论介绍 (1)名词术语 一揽子采购协议(Blanket Purchase Agreement,BPA)是指某个期间内计划要从特定供应商处采购物料或服务,并且已知这些物料或服务的详细信息但尚未明确具体的交货计划,则可以创建一揽子采购协议.在实际采购物料之前,您可以使用一揽子采购协议来指定物料的协议价格.一揽子采购协议可为单个组织创建,或由组织的不同营业单位共享(全局协议). 一揽子采购协议是一种为降低采购成

应用层协议FTP、DNS协议、HTTP协议分析

分析所用软件下载:Wireshark-win32-1.10.2.exe 一.阅读导览 1.分析FTP协议 2.分析DNS协议 3. 分析HTTP协议 二.分析要求 (1)ftp部分: 学习 Serv-U FTP Server 服务软件的基本配置和FTP 客户端命令的使用 设计应用以获取ftp报文 分析ftp报文的格式与内容(分析至少5个报文,并理解它们之间的关系) 观察 FTP 协议的工作过程,分析FTP 客户是以 PORT 模式还是 PASV 模式连接服务器,观察两种连接 的建立过程和释放过程

(转)TCP/IP协议与UDP/IP协议的区别

TCP(Transmission Control Protocol,传输控制协议)是面向连接的协议, 也就是说,在收发数据前,必须和对方建立可靠的连接. 一个TCP连接必须要经过三次“对话”才能建立起来,其中的过程非常复杂,只简单的描述下这三次对话的简单过程: A ---> B //主机A向主机B发出连接请求数据包:“我想给你发数据,可以吗?”,这是第一次对话: A <--- B //主机B向主机A发送同意连接和要求同步(同步就是两台主机一个在发送,一个在接收,协调工作) //的数据包:“可以

流媒体传输协议系列之--RTSP协议详解

流媒体传输协议介绍 一.RTSP协议介绍 什么是rtsp? RTSP协议以客户服务器方式工作,,如:暂停/继续.后退.前进等.它是一个多媒体播放控制协议,用来使用户在播放从因特网下载的实时数据时能够进行控制, 因此 RTSP 又称为"因特网录像机遥控协议". RTSP(Real-Time Stream Protocol)是一种基于文本的应用层协议,在语法及一些消息参数等方面,RTSP协议与HTTP协议类似. 是TCP/IP协议体系中的一个应用层协议, 由哥伦比亚大学, 网景和RealN