Http协议头

#########

#概览

#########  

超文本传输协议(Http: Hyper Text Transfer Protocol) :用于发送WWW方式的数据。采用TCP/IP协议,是一个无状态协议。采用了请求/响应模型。

  

#########

#Http请求 Request

#########  

  客户端向服务器发送一个请求,看图:

  HTTp请求包括:

  1) 请求方法、URI(uniform Resource identity 统一资源标识符question/23133/、 URL:统一资源定位符号www.baidu.com/question/23133/)协议版本 

  2) 请求头

  3) \n(空行

  4) 请求数据

Get请求例子,使用Charles抓取的request:

GET /562f25980001b1b106000338.jpg HTTP/1.1
Host    img.mukewang.com
User-Agent    Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.106 Safari/537.36
Accept    image/webp,image/*,*/*;q=0.8
Referer    http://www.imooc.com/
Accept-Encoding    gzip, deflate, sdch
Accept-Language    zh-CN,zh;q=0.8

第一部分:GET说明请求类型为GET,[/562f25980001b1b106000338.jpg]为要访问的资源,该行的最后一部分说明使用的是HTTP1.1版本。


第二部分:请求头部,紧接着请求行(即第一行)之后的部分,用来说明服务器要使用的附加信息


从第二行起为请求头部,HOST将指出请求的目的地.User-Agent,服务器端和客户端脚本都能访问它,它是浏览器类型检测逻辑的重要基础.该信息由你的浏览器来定义,并且在每个请求中自动发送等等


第三部分:空行,请求头部后面的空行是必须的


第四部分:请求数据也叫主体,可以添加任意的其他数据。


这个例子的请求数据为空。

 
POST请求例子,使用Charles抓取的request:

POST / HTTP1.1
Host:www.wrox.com
User-Agent:Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022)
Content-Type:application/x-www-form-urlencoded
Content-Length:40
Connection: Keep-Alive

name=Professional%20Ajax&publisher=Wiley
第一部分:请求行,第一行明了是post请求,以及http1.1版本。
第二部分:请求头部,第二行至第六行。
第三部分:空行,第七行的空行。
第四部分:请求数据,第八行。

#########

#Http响应 Response

#########  

Http响应包括:也由四个部分组成,分别是:状态行、消息报头、空行和响应正文。

#########

#Http 请求方法 & Http1.1 & Http 1.0

#########

根据HTTP标准,HTTP请求可以使用多种请求方法。
HTTP1.0定义了三种请求方法: GET, POST 和 HEAD方法。
HTTP1.1新增了五种请求方法:OPTIONS, PUT, DELETE, TRACE 和 CONNECT 方法。

GET     请求指定的页面信息,并返回实体主体。
HEAD     类似于get请求,只不过返回的响应中没有具体的内容,用于获取报头
POST     向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改。
PUT     从客户端向服务器传送的数据取代指定的文档的内容。
DELETE      请求服务器删除指定的页面。
CONNECT     HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。
OPTIONS     允许客户端查看服务器的性能。
TRACE     回显服务器收到的请求,主要用于测试或诊断。

 

GET和POST的区别

    1. GET提交的数据会放在URL之后,以?分割URL和传输数据,参数之间以&相连,如EditPosts.aspx?name=test1&id=123456. POST方法是把提交的数据放在HTTP包的Body中.
    2. GET提交的数据大小有限制(因为浏览器对URL的长度有限制),而POST方法提交的数据没有限制.
    3. GET方式需要使用Request.QueryString来取得变量的值,而POST方式通过Request.Form来获取变量的值。
    4. GET方式提交数据,会带来安全问题,比如一个登录页面,通过GET方式提交数据时,用户名和密码将出现在URL上,如果页面可以被缓存或者其他人可以访问这台机器,就可以从历史记录获得该用户的账号和密码.

参考:http://www.cnblogs.com/ranyonsue/p/5984001.html

时间: 2024-10-06 11:42:26

Http协议头的相关文章

HTTP协议头注射漏洞实例

HTTP 响应头文件中包含未经验证的数据会引发 cache-poisoning.cross-site scripting.cross-user defacement.page hijacking.cookie manipulation 或 open redirect. HTTP协议头注射漏洞原理 以下情况中会出现 HTTP协议头注射漏洞: 1. 数据通过一个不可信赖的数据源进入 Web 应用程序,最常见的是 HTTP 请求. 2. 数据包含在一个 HTTP 响应头文件里,未经验证就发送给了 We

关于HTTP协议头域详解

HTTP1.1 请求头:消息头  Accept:text/html,image/*  告诉服务器,客户机支持的数据类型 Accept-Charset:ISO-8859-1  告诉服务器,客户机采用的编码  Accept-EnCoding:gzip,compress 告诉服务器,客户机支持的数据压缩格式 Accept-Language:en   客户机的语言环境 Host: 客户机告诉服务器,想访问的主机名  If-Modified-Since:客户机通过这个头告诉服务器,资源的缓存时间  Ref

设置HTTP代理后,HTTP协议头的不同之处

由于项目需要,最近热衷于研究HTTP代理相关技术. 众所周知,用户在设置了浏览器的代理之后,再打开浏览器,输入网址,点击回车之后,浏览器会自动地将http请求数据包发往代理服务器.很明显地,这期间,ip地址会发生改变,这种改变属于网络层需要处理的事情,也就说浏览器负责了这部分的工作. 那么应用层的HTTP协议头会不会有什么变化呢,到底哪个协议头表明了用户是设置了代理呢?怀着这样的疑问,我翻开了HTTP协议的经典巨著<HTTP:The Definitive Guide>一书.(PS:这本书是bo

http协议头分析

http协议头各个域解析: 请求头的方法有GET, POST , PUT ,DELETE,等.GET用来请求数据,POST还提交数据. 状态码:  1xx 表示请求被接受,正在处理中. 200 ok 表示请求被接受,处理. 301  表示页面被重定向,客户端根据给出的重定向链接再次请求 304 表示页面没有修改,这是在使用ETAG字段时,服务器对比之后发送未修改的状态码. 401 表示身份验证错误,需要登录信息. 403 表示请求被拒绝,用户没有权限. 404 表示请求的资源不存在 500 表示

IP封包协议头/TCP协议头/TCP3次握手/TCP4次挥手/UDP协议头/ICMP协议头/HTTP协议(请求报文和响应报文)/IP地址/子网掩码(划分子网)/路由概念/MAC封包格式

IP协议头IP包头格式: 1.版本号:4个bit,用来标识IP版本号.这个4位字段的值设置为二进制的0100表示IPv4,设置为0110表示IPv6.目前使用的IP协议版本号是4. 2.首部长度:4个bit.标识包括选项在内的IP头部字段的长度. 3.服务类型:8个bit.服务类型字段被划分成两个子字段:3bit的优先级字段和4bit TOS字段,最后一位置为0. 4bit的TOS分别代表:最小时延,最大吞吐量,最高可靠性和最小花费.4bit中只能将其中一个bit位置1.如果4个bit均为0,则

tcp协议头窗口,滑动窗口,流控制,拥塞控制关系

参考文章 TCP 的那些事儿(下) http://coolshell.cn/articles/11609.html tcp/ip详解--拥塞控制 & 慢启动 快恢复 拥塞避免 http://blog.csdn.net/kinger0/article/details/48206999 TCP window Full http://blog.csdn.net/abccheng/article/details/50503457 名词解释 MTU:maximum transmission unit,最大

http协议头文件的控制信息(转)

通常HTTP消息包括客户机向服务器的请求消息和服务器向客户机的响应消息.这两种类型的消息由一个起始行,一个或者多个头域,一个只是头域结束的空行和可选的消息体组成.HTTP的头域包括通用头,请求头,响应头和实体头四个部分.每个头域由一个域名,冒号(:)和域值三部分组成.域名是大小写无关的,域值前可以添加任何数量的空格符,头域可以被扩展为多行,在每行开始处,使用至少一个空格或制表符. 通用头域 通用头域包含请求和响应消息都支持的头域,通用头域包含Cache-Control.Connection.Da

HTTP协议头字段

一.基础篇HTTP(HyperTextTransferProtocol)是超文本传输协议的缩写,它用于传送WWW方式的数据,关于HTTP协议的详细内容请参考RFC2616.HTTP协议采用了请求/响应模型.客户端向服务器发送一个请求,请求头包含请求的方法.URI.协议版本.以及包含请求修饰符.客户信息和内容的类似于MIME的消息结构.服务器以一个状态行作为响应,相应的内容包括消息协议的版本,成功或者错误编码加上包含服务器信息.实体元信息以及可能的实体内容.通常HTTP消息包括客户机向服务器的请求

HTTP协议头及错误码详解

通常HTTP消息包括客户机向服务器的请求消息和服务器向客户机的响应消息.客户端向服务器发送一个请求,请求头包含请求的方法.URI.协议版本.以及包含请求修饰符.客户信息和内容的类似于MIME的消息结构.服务器以一个状态行作为响应,相应的内容包括消息协议的版本,成功或者错误编码加上包含服务器信息.实体元信息以及可能的实体内容. Http协议定义了很多与服务器交互的方法,最基本的有4种,分别是GET.POST.PUT.DELETE.一个URL地址用于描述一个网络上的资源,而HTTP中的GET.POS