http协议

1.背景介绍

2.知识剖析

3.常见问题

4.解决方案

5.编码实战

6.扩展思考

7.参考文献

8.更多讨论

1.背景介绍

什么是http协议?

http协议(HyperText Transfer Protocol,超文本传协议)是一种用于分布式,协作式和超媒体信息系统的应用层协议,

是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。

特点:

1、简单快速:客户向服务器请求服务时,只需传送请求方法和路径。

请求方法常用的有GET、HEAD、POST等。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。

灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。

3.无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。

4.无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。

5、支持B/S及C/S模式。

2.知识剖析

URL

HTTP使用统一资源标识符(Uniform Resource Identifiers, URI)来传输数据和建立连接。URL是一种特殊类型的URI,全称是UniformResourceLocator,

中文叫统一资源定位符,是互联网上用来标识某一处资源的地址,包含了用于查找某个资源的足够的信息。

以下面这个URL为例,介绍下普通URL的各部分组成:

http://www.aspxfans.com:8080/news/index.asp?boardID=5&ID=24618&page=1#name

1.协议部分:该URL的协议部分为“http:”,这代表网页使用的是HTTP协议。在Internet中可以使用多种协议,如HTTP,FTP等等本例中使用的是HTTP协议。在"HTTP"后面的“//”为分隔符。

2.域名部分:该URL的域名部分为“www.aspxfans.com”。一个URL中,也可以使用IP地址作为域名使用。

3.端口部分:跟在域名后面的是端口,域名和端口之间使用“:”作为分隔符。端口不是一个URL必须的部分,如果省略端口部分,将采用默认端口。

4.虚拟目录部分:从域名后的第一个“/”开始到最后一个“/”为止,是虚拟目录部分。虚拟目录也不是一个URL必须的部分。本例中的虚拟目录是“/news/”

5.文件名部分:从域名后的最后一个“/”开始到“?”为止,是文件名部分,如果没有“?”,则是从域名后的最后一个“/”开始到“#”为止,是文件部分,如果没有“?”和“#”,那么从域名后的最后一个“/”开始到结束,都是文件名部分。

本例中的文件名是“index.asp”。文件名部分也不是一个URL必须的部分,如果省略该部分,则使用默认的文件名

6.锚部分:从“#”开始到最后,都是锚部分。本例中的锚部分是“name”。锚部分也不是一个URL必须的部分。

7.参数部分:从“?”开始到“#”为止之间的部分为参数部分,又称搜索部分、查询部分。本例中的参数部分为“boardID=5&ID=24618&page=1”。参数可以允许有多个参数,参数与参数之间用“&”作为分隔符。

3.常见问题

http请求content-Type有几种?

Content-Type,内容类型,用于定义网络文件的类型和网页的编码,浏览器根据该参数来决定数据的打开方式。

Content-Type使用的是 “主类型/子类型; 额外参数” (  [type]/[subtype]; parameter )的数值格式。

“主类型” (type)主要有以下几种:

1. text:用于标准化地表示的文本信息,文本消息可以是多种字符集和或者多种格式的; 默认是text/plain。

2. multipart:用于连接消息体的多个部分构成一个消息,这些部分可以是不同类型的数据; 默认是multipart/mixed。

3. application:用于传输应用程序数据或者二进制数据; 默认是application/octet-stream。

4. message:用于包装一个E-mail消息。

5. image:用于传输静态图片数据。

6. audio:用于传输音频或者音声数据。

7. video:用于传输动态影像数据,可以是与音频编辑在一起的视频数据格式。

“子类型” (subtype)用于指定"主类型"的详细形式。 其中以x-开头表示该类别尚未标准化 。当客户端不能确定“子类型”时,会根据“主类型”来获取默认的子类型。

"额外参数" (parameter)用于指定请求/响应内容的字符编码格式。例如text/html;charset=utf-8;

http状态码

1开头代表消息,代表请求已被接收,需要继续处理,这类响应只是临时响应

2开头代表成功,这一类型的状态码代表请求已成功被服务器接收,理解

3开头代表重定向.这类状态码代表需要客户端采取进一步的操作才能完成请求,通常,这些状态码用来重定向,后续的地址(重定向目标)在本次响应的location域中指明

4开头代表请求错误,这类状态码代表客户端看起来可能发生了错误,妨碍了服务器的处理

5开头代表服务器在处理请求的过程有错误或者异常状态发生

常见的状态码

200:请求已成功,请求所希望的响应头或数据体将随此响应返回。

404:请求失败,请求所希望得到的资源未被在服务器上发现,出现这个错误的最有可能的原因是服务器端没有这个页面。

500:服务器遇到了一个未曾预料的状况,导致了它无法完成对请求的处理。一般来说,这个问题都会在服务器端的源代码出现错误时出现。

Get和post请求方法有什么区别?

根据HTTP标准,HTTP请求可以使用多种请求方法,到HTTP1.1包括八种方法:

GET, POST,HEAD,OPTIONS, PUT, DELETE, TRACE 和 CONNECT。

4.解决方案

区别:

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上,如果页面可以被缓存或者其他人可以访问这台机器,就可以从历史记录获得该用户的账号和密码。

5.编码实战

6.扩展思考

http协议适用场景

缺点:

1.传输速度慢,数据包大。

2.如实现实时交互,服务器性能压力大

3.数据传输安全性差

1.公司oa系统:Office Automation System ,意为办公自动化系统。使用局域网,较为安全。

2.各种互联网服务。

7.参考文献

https://www.cnblogs.com/li0803/archive/2008/11/03/1324746.html

http://blog.csdn.net/kfanning/article/details/6062118/

更多讨论:

长连接和短连接?

HTTP1.1规定了默认保持长连接(HTTP persistent connection ,也有翻译为持久连接),数据传输完成了保持TCP连接不断开(不发RST包、不四次握手),等待在同域名下继续用这个通道传输数据;相反的就是短连接。

http协议和tcp协议的区别是什么?

术语TCP/IP代表传输控制协议/网际协议,指的是一系列协议。“IP”代表网际协议,TCP和UDP使用该协议从一个网络传送数据包到另一个网络。把IP想像成一种高速公路,它允许其它协议在上面行驶并找到到其它电脑的出口。TCP和UDP是高速公路上的“卡车”,它们携带的货物就是像HTTP,文件传输协议FTP这样的协议等。

Http协议中Http1.0与1.1区别?

http://blog.csdn.net/elifefly/article/details/3964766/

PPT地址:

https://ptteng.github.io/PPT/PPT-java/JAVA-task2-http.xml.html#/

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

推荐阅读更多精彩内容

  • 一、概念(载录于:http://www.cnblogs.com/EricaMIN1987_IT/p/3837436...
    yuantao123434阅读 8,328评论 6 152
  • Http协议详解 标签(空格分隔): Linux 声明:本片文章非原创,内容来源于博客园作者MIN飞翔的HTTP协...
    Sivin阅读 5,201评论 3 82
  • HTTP概述 超文本传输协议(HTTP,HyperText Transfer Protocol) 是互联网上应用最...
    曹渊说创业阅读 3,838评论 2 61
  • (原话)谈谈对HTTP协议的理解:超文本传输协议,应用于OSI网络模型中的应用层,是用于服务器传输超文本到本地浏览...
    24_yu阅读 874评论 0 1
  • 前言:最近发现自己在网络相关这一块基础很是欠缺,所以准备花时间了解一下,本文主要是讲http协议的一些基础,和一些...
    justCode_阅读 2,092评论 0 23