HTTP协议详解

定义:超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。

发展

1990年提出,经过多年的使用与发展,得到不断地完善和扩展。目前在WWW中使用的是HTTP/1.0的第六版,HTTP/1.1的规范正在进行之中,而且HTTP-NG(Next Generation of HTTP)的建议已经提出。

主要特点

1.支持客户/服务器模式;2.简单快速:客户向服务器请求服务时,只需传送请求方法和路径;3.灵活:HTTP允许传输任意类型的数据对象(正在传输的类型由Content-Type加以标记);4.无连接:无连接的含义是限制每次连接只处理一个请求(服务器处理完客户请求,并收到客户的应答后,就断开连接,采用这种方式可以节省传输时间);5.无状态:HTTP协议是无状态协议,无状态是指协议对于事务处理没有记忆能力,缺少状态意味如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据增大,但是在服务器不需要先前信息是它的应答就较快。

http请求

http请求由三部分组成,分别是:请求行、消息报头、请求正文

(1)请求行

请求行以一个方法符号开头,以空格分开,后面跟着请求的URI和协议的版本,格式如下:Method Request-URI HTTP-Version,例如(GET /index.html HTTP/1.1)

请求方法主要有GET和POST两种

GET:在浏览器的地址栏中输入网址的方式访问网页时,浏览器采用GET方法向服务器获取资源。

POST:要求被请求服务器接受附在请求后面的数据,常用于提交表单。

(2)请求头(Request Header)

请求头包含许多有关的客户端环境和请求正文的有用信息。例如,请求头可以声明浏览器所用的语言,请求正文的长度等。

Host: localhost:8089

Connection: keep-alive  //长连接

Upgrade-Insecure-Requests: 1

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: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8

Accept-Encoding: gzip, deflate, sdch  //编码

Accept-Language: zh-CN,zh;q=0.8  //语言

(3)请求正文

请求头和请求正文之间是一个空行,这个行非常重要,它表示请求头已经结束,接下来的是请求正文。

Accept:image/gif.image/jpeg,*/*

Accept-Language:zh-cn

Connection:Keep-Alive

Host:localhost

User-Agent:Mozila/4.0(compatible;MSIE5.01;Window NT5.0)

Accept-Encoding:gzip,deflate

//一个空行

username=jinqiao&password=1234

HTTP请求方法我这里只讨论GET方法与POST方法

GET方法

用GET方法提交的表单数据只经过了简单的编码,同时它将作为URL的一部分向Web服务器发送,因此,如果使用GET方法来提交表单数据就存在着安全隐患上。例如

Http://127.0.0.1/login.jsp?Name=zhangshi&Age=30&Submit=%cc%E+%BD%BB

从上面的URL请求中,很容易就可以辩认出表单提交的内容。(?之后的内容)另外由于GET方法提交的数据是作为URL请求的一部分所以提交的数据量不能太大

POST方法

POST方法是GET方法的一个替代方法,它主要是向Web服务器提交表单数据,尤其是大批量的数据。POST方法克服了GET方法的一些缺点。通过POST方法提交表单数据时,数据不是作为URL请求的一部分而是作为标准数据传送给Web服务器,这就克服了GET方法中的信息无法保密和数据量太小的缺点。因此,出于安全的考虑以及对用户隐私的尊重,通常表单提交时采用POST方法。

从编程的角度来讲,如果用户通过GET方法提交数据,则数据存放在QUERY_STRING环境变量中,而POST方法提交的数据则可以从标准输入流中获取。

http响应

HTTP应答与HTTP请求相似,HTTP响应也由3个部分构成,状态行,响应头(Response Header),响应正文

状态行

状态行由协议版本、数字形式的状态代码、及相应的状态描述,各元素之间以空格分隔。格式:    HTTP-Version Status-Code Reason-Phrase 例如:    HTTP/1.1 200 OK

状态代码

1xx:  指示信息—表示请求已接收,继续处理。

2xx:  成功—表示请求已经被成功接收、理解、接受。

3xx:  重定向—要完成请求必须进行更进一步的操作。

4xx:  客户端错误—请求有语法错误或请求无法实现。

5xx: 服务器端错误—服务器未能实现合法的请求。

状态代码 状态描述说明

200  OK    客户端请求成功

400  Bad Request  由于客户端请求有语法错误,不能被服务器所理解。

401  Unauthonzed  请求未经授权。这个状态代码必须和WWW-Authenticate报头域一起使用

403  Forbidden  服务器收到请求,但是拒绝提供服务。服务器通常会在响应正文中给出不提供服务的原因

404  Not Found  请求的资源不存在,例如,输入了错误的URL。

500  Internal Server Error 服务器发生不可预期的错误,导致无法完成客户端的请求。

503  Service Unavailable  服务器当前不能够处理客户端的请求,在一段时间之后,服务器可能会恢复正常。

响应头(Response Header)

Content-Length:Content-Length实体报头域用于指明正文的长度,以字节方式存储的十进制数字来表示,也就是一个数字字符占一个字节,用其对应的ASCII码存储传输。

Content-Type:Content-Type实体报头域用语指明发送给接收者的实体正文的媒体类型。例如:Content-Type: text/html;charset=ISO-8859-1,Content-Type: text/html;charset=GB2312

Server:Server响应报头域包含了服务器用来处理请求的软件信息。

Date:响应时间。

响应正文

服务器返回的资源的内容

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,539评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,594评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 165,871评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,963评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,984评论 6 393
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,763评论 1 307
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,468评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,357评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,850评论 1 317
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,002评论 3 338
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,144评论 1 351
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,823评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,483评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,026评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,150评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,415评论 3 373
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,092评论 2 355

推荐阅读更多精彩内容

  • 一、概念(载录于:http://www.cnblogs.com/EricaMIN1987_IT/p/3837436...
    yuantao123434阅读 8,359评论 6 152
  • Http协议详解 标签(空格分隔): Linux 声明:本片文章非原创,内容来源于博客园作者MIN飞翔的HTTP协...
    Sivin阅读 5,224评论 3 82
  • PS:简书的网址真不是给人看的。。。我单独开了一个网址可以重定向到我的简书主页。博客地址:flutterall.c...
    徐爱卿阅读 6,921评论 21 97
  • 公司楼下的玉兰花。 玉兰花的花期太短,两三夜间就全开放了,再两三夜间陆续掉落。 没有拍到她含苞待放的时候。 分别拍...
    如大花阅读 231评论 0 3
  • 夜。漆黑的夜。 远处树隙间,却透出一抹白。那是路灯。 已是春天,可这里,看不到一丝绿。或者说,这里,没有春天。 灯...
    安洋vip阅读 201评论 0 0