超文本传输协议及HTTP包

HTTP协议用于在Internet上发送和接收消息。HTTP协议是一种请求-应答式的协议 ——客户端发送一个请求,服务器返回该请求的应答,所有的请求与应答都是HTTP包。HTTP协议使用可靠的TCP连接,默认端口是80。HTTP的第一 个版本是HTTP/0.9,后来发展到了HTTP/1.0,现在最新的版本是HTTP/1.1。HTTP/1.1由RFC 2616 定义。

在HTTP 中,Client/Server之间的会话总是由客户端通过建立连接和发送HTTP请求包初始化,服务器不会主动联系客户端或要求与客户端建立连接。浏览 器和服务器都可以随时中断连接,例如,在浏览网页时你可以随时点击"停止"按钮中断当前的文件下载过程,关闭与Web服务器的HTTP连接。

1 HTTP请求包
HTTP请求包(GET、POST等请求方法)由三个部分构成,分别是:方法-URI-协议/版本,请求头,请求正文。下面是一个HTTP请求包(GET)的例子:

GET /index.jsp HTTP/1.1
Accept-Language: zh-cn
Connection: Keep-Alive
Host: 192.168.0.106
Content-Length: 37

userName=new_andy&password=new_andy


请求包的第一行是方法-URI-协议/版本:
GET就是请求方法,根据HTTP标准,HTTP请求可以使用多种请求方法。HTTP 1.1支持七种请求方法:GET、POST、HEAD、OPTIONS、PUT、delete和TRACE等,常用的为请求方法是GET和POST。

/index.jsp 表示URI。URI指定了要访问的网络资源。
HTTP/1.1是协议和协议的版本。
最 后一行userName=new_andy&password=new_andy为正文,正文与HTTP头部有一个空行(\r\n)分隔。这里需 要说明的一点,其中Content-Length说明正文的长度,有的正文长度没有在头部说明,只是标明Transfer-Encoding: chunked。关于chunked类型的长度计算方法,见RFC 1626。
请求包的头部还会包含许多有关客户端环境和请求正文的有用信息,这里不再描述。

2 HTTP应答包
和HTTP请求包相似,由三个部分构成,分别是:协议-状态代码-描述,应答头,应答正文。下面是一个HTTP应答的例子:

HTTP/1.1 200 OK
Server: Microsoft-IIS/4.0
Date: Mon, 3 Jan 2005 13:13:33 GMT
Content-Type: text/html
Last-Modified: Mon, 11 Jan 2004 13:23:42 GMT
Content-Length: 90

<html>
<head>
<title> 解读HTTP包示例</title></head><body>
Hello WORLD!
</body>
</html>


HTTP应答包的第一行类似于HTTP请求的第一行,表示所用的协议是HTTP 1.1,服务器处理请求的状态码200。
应答头也和请求头一样包含许多有用的信息,例如服务器类型、日期时间、内容类型和长度等。应答的正文就是服务器返回的HTML页面。应答头和正文之间也用 CRLF分隔。


wiki中的解释

超文本传输协议(HTTPHyperText Transfer Protocol)是互联网上应用最为广泛的一种网络传输协议。所有的WWW文件都必须遵守这个标准。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。

概述

HTTP的发展是万维网协会和Internet工作小组合作的结果,在一系列的RFC发布中确定了最终版本,其中最著名的是RFC 2616。在RFC 2616中定义了HTTP/1.1这个今天普遍使用的版本。

HTTP是一个用于在客户端和服务器间请求和应答的协议。一个HTTP的客户端,诸如一个web浏览器,通过建立一个到远程主机特殊端口(默认端口为80)的连接,初始化一个请求。一个HTTP服务器通过监听特殊端口等待客户端发送一个请求序列, 就像“GET / HTTP/1.1”(用来请求网页服务器的默认页面),有选择的接收像email一样的MIME消 息,此消息中包含了大量用来描述请求各个方面的信息头序列,响应一个选择的保留数据主体。接收到一个请求序列后(如果要的话,还有消息),服务器会发回一 个应答消息,诸如“200 OK”,同时发回一个它自己的消息,此消息的主体可能是被请求的文件、错误消息或者其他的一些信息。

HTTP不同于其他基于TCP的协议,诸如FTP。 在HTTP中,一旦一个特殊的请求(或者请求的相关序列)完成,连接通常被中断。这个设计使得对于当前页面有规则连接到另一台服务器页面的万维网来说, HTTP是完美的。当持久连接的缺乏成为保持用户状态的必需选择的方法时,对网页设计者来说,会偶然产生一些问题。而大部分这些方法包括了对“cookies”的使用。

这里有一个HTTP的安全版本称为HTTPS,HTTPS支持任何的加密算法,只要此加密算法能被页面双方所理解。

HTTP(和HTTPS)由唯一资源定位器或者简称URLs定位。创造这种地址定位的语法为了HTML的链接。

例子

下面是一个HTTP客户端与服务器之间会话的例子,运行于www.google.com,端口80

客户端请求:

GET / HTTP/1.1
Host:www.google.com

(紧跟着一个换行,通过敲入回车实现)

服务器应答:

HTTP/1.1 200 OK
Content-Length: 3059
Server: GWS/2.0
Date: Sat, 11 Jan 2003 02:44:04 GMT
Content-Type: text/html
Cache-control: private
Set-Cookie: PREF=ID=73d4aef52e57bae9:TM=1042253044:LM=1042253044:S=SMCc_HRPCQiqy
X9j; expires=Sun, 17-Jan-2038 19:14:07 GMT; path=/; domain=.google.com
Connection: keep-alive

(紧跟着一个空行,并且由HTML格式的文本组成了Google的主页)

在HTTP1.0中,客户端发送一个请求至服务器,服务器发送一个应答至客户端。之后,连接将被释放。另一方面,HTTP1.1支持持久连接。这使 得客户端可以发送请求并且接收应答,然后迅速的发送另一个请求和接收另一个应答。因为多个额外的请求,TCP连接并没有被释放,而每个请求中关于TCP的 负载相对较少。同时,在得到上一个请求的应答之前发送多个请求(通常是两个)也成为可能。这个技术被称为“流水线”。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/436459.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ffmpeg 截图太模糊了_PPT图片模糊?导师说放大!

今日分享图片智能放大●●●●重庆大学PPT图片太模糊了&#xff0c;要用原图&#xff01;放大&#xff0c;放大导师如是说&#xff0c;小硕表示&#xff0c;图片本就这样这咋办&#xff1f;不愁&#xff0c;稳住接着看在做PPT时还是做论文时想用某张图片&#xff0c;但是直接拉…

【转】全了!临港四镇最新对口地段小学,中学都在这里,看看你的孩子能读哪个学校

临港的家长们关于自己的孩子就读哪个学校&#xff0c;家长们一直都很关心和关注&#xff0c;每个家长对孩子的教育很是重视&#xff0c;有部分家长买临港的房子就冲着学区去的&#xff0c;临港的优质教育资源一直是被居民所称赞的&#xff0c;学校也没家长失望&#xff0c;个别…

状态栏显示时间代码

状态栏显示时间代码 <html><head><title>网页特效|Linkweb.cn/Js|---状态栏滚动时间</title></head><body>请看状态栏<BR><!--将以下代码加入HTML的<Body></Body>之间--> <SCRIPT languageJavaScript>var o…

WINCE驱动程序快速入门

有人也许和我一样比较心急&#xff0c;想尽快知道如何去写一个具体的驱动程序&#xff0c;这里&#xff0c;假设您对驱动程序已经有比较好的了解&#xff0c;告诉大家一个快速上路的方法。当然&#xff0c;如果您有足够的时间我建议在动手之前还是深入了解一下CE整个系统架构。…

【转】Azure Az-900认证 04——-考取AZ900所有知识点总结--获取证书!

结合最近所做的模拟题&#xff0c;把一些容易考的知识和概念重新回顾记录一下。标红的字要注意一下&#xff0c;有可能这几个简单的字&#xff0c;就是最能概括这个概念的关键点&#xff0c;个人在回顾的时候把这些点红色标出来了&#xff0c;会在题干中以不同的案例形式来考察…

怎么用vc采集ni卡数据_8bit,200MS/s 低成本模拟输入高速采集卡FCFR-PCI9850

FCFR-PCI98508bit,200MS/s 低成本模拟输入高速采集卡FCFR-PCI9850&#xff08;简称PCI9850&#xff09;是低成本高速数字化化仪&#xff0c;AD分辨率8bit&#xff0c;AD采样率200MS/s&#xff0c;硬件FIFO缓存32M字节&#xff0c;采集卡支持50MS/s的高速连续采集&#xff0c;触…

网站程序安全分析器 VB源码

本程序通杀:ASP ASPX PHP CGI JSP VBS 等脚本WebShell并能查出99%加密过的脚本WebShell后来发现..精度越高误杀越高...基本做到宁误扫三千不放过1马~其实是利用串判断.原理很简单.有很多人向偶要代码.想到人家ScanWebshell都贡献出来了~偶要是不贡献出来就不厚道咯.以下是全部代…

S3C6410启动模式介绍

目前的ARM处理器都支持多种启动模式&#xff0c;S3C6410和以前的Samsung的ARM处理器一样&#xff0c;通过外部管脚OM[4:0]的拉高拉低来决定是从哪个存储设备上启动。我认为S3C6410的User Manual并没有说的很清楚&#xff0c;所以我在最开始使用的时候&#xff0c;也对其启动模式…

如何用木板做桥_如何辨别使用的公园椅是否需要保养

如何辨别使用的公园椅存在哪些问题新城市公园椅小编与您分享&#xff0c;每一项事物都会有它的使用寿命&#xff0c;公园椅也不例外。公园椅使用有几年后后&#xff0c;我们通过公园椅的哪些表现来发现公园椅存在哪些隐患呢&#xff1f;通过观察、触摸、按压这三种方式来发现公…

密码学概述

时间点&#xff1a; 公元前400年&#xff0c;希腊人发明了置换密码&#xff1b; 1881年&#xff0c;世界上第一个电话保密专利出现&#xff1b; 二战期间&#xff0c;德国军方启用“恩尼格玛”密码机&#xff1b; 1976年&#xff0c;由于对称加密算法已经不能满足需要&#…

【转】关于医疗术语 CT,MR,DR,CR,DSA 等

医疗术语解释&#xff1a; Digital Radiography (CR, DX) &#xff1a;数字X线摄影 Mammography (MG)&#xff1a;乳房X射线照相术 Computed Tomography (CT)&#xff1a;计算机断层扫描 Magnetic Resonance (MR)&#xff1a;磁共振 Positron Emission Tomography PET-CT …

c语言删除文件remove_Python中的文件和目录操作

对于文件和目录的处理&#xff0c;虽然可以通过操作系统命令来完成&#xff0c;但是Python语言为了便于开发人员以编程的方式处理相关工作&#xff0c;提供了许多处理文件和目录的内置函数。重要的是&#xff0c;这些函数无论是在Unix、Windows还是Macintosh平台上&#xff0c;…

漏洞:Client ReDos From Regex Injection

漏洞描述&#xff1a; 扫描漏洞如下&#xff1a;代码&#xff1a; // In IE6, the hash fragment and search params are incorrect if the // fragment contains ?. getSearch: function() { var match this.location.href.replace(/#.*/, ).match(/\?./); …

【转】mysql 、oracle中char和varchar以及varchar2的区别

mysql char是固定长度&#xff0c;varchar是可变长度的&#xff0c;varchar2是oracle特有的。 char定长存储&#xff0c;速度快&#xff0c;但是存在一定空间的资源浪费,适用于存储字段不是很大、对速度要求高的场合。速度快是因为在物理上是按照定长存储的&#xff0c;这样就…

WinCE Boot方式及 Bootloader架构概述

Bootloader的概念就是一个用于引导的loader&#xff0c;在系统上电的时候最先被运行&#xff0c;然后对硬件平台做最基本的初始化&#xff0c;最后把操作系统加载起来。不同的嵌入式操作系统都有自己的Bootloader&#xff0c;但是本质功能都是一样的。 在WinCE中用的最多的就是…

静物摄影用光技巧_摄影技巧:摄影如何用光?摄影大师总结的10点,非常受用!...

点击上方蓝字关注「摄影技巧入门教程」ID&#xff1a;sheying116找到右上角点击?... 设为星标/置顶 丨摄影技巧丨丨摄影入门丨丨摄影教程丨丨摄影图片丨摄影技巧&#xff1a;光线的运用在摄影中至关重要&#xff0c;但很多摄影新手却不知道该如何用光&#xff0c;今天我们就来…

Python如何创建相同值的数组/列表

题目要求 现在有这样的一个需求&#xff1a;创建一个数组或列表&#xff0c;列表中的所有值是相同的。 解决方法 找到两种解决方法&#xff0c;第一种是使用Python的基础语法&#xff0c;第二种是借助numpy包提供的函数实现。分别为大家进行介绍。 方法一&#xff1a;使用P…

【转】肺小结节就诊指南:4种CT的区别及如何选择?

又到医院体检的季节&#xff0c;胸外科医师又要忙着给本院同事看片子了。目前体检查出的早期肺癌越来越多&#xff0c;主要归功于CT检查的普及&#xff0c;相较于X-ray胸片&#xff0c;CT对肺内小结节&#xff0c;特别是小于1cm的结节诊断率更高。因此&#xff0c;要提高早期肺…

CTL_CODE说明

我们在说DeviceIoControl函数时其第二个参数dwIoControlCode就是由CTL_CODE宏定义的&#xff0c;下边我们可以了解一下CTL_CODE的内容。CTL_CODE&#xff1a;用于创建一个唯一的32位系统I/O控制代码&#xff0c;这个控制代码包括4部分组成&#xff1a;DeviceType&#xff08;设…

修改Linux主机名和IP

问题描述 又到了例行的系统安全测试时间&#xff0c;公司部署的一套系统需要做安全测试了&#xff0c;首先要做主机渗透&#xff0c;显然不可能在正式环境直接测&#xff0c;于是就把几台服务器做了个镜像&#xff0c;作为测试环境。 现在问题是&#xff0c;测试环境的ip要修…