HTTP协议详解

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

HTTP协议是无状态的
• http协议是无状态的,同一个客户端的这次请求 和上次请求是没有对应关系,对http服务器来说, 它并不知道这两个请求来自同一个客户端。 为 了解决这个问题, Web程序引入了Cookie机制来 维护状态
打开一个网页需要浏览器发送很多 次Request
• 1. 当你在浏览器输入URL http://www.cnblogs.com 的时候,浏览器发送一个Request去获取 http://www.cnblogs.com 的html. 服务器把 Response发送回给浏览器. • 2. 浏览器分析Response中的 HTML,发现其中引 用了很多其他文件,比如图片,CSS文件,JS文 件。 • 3. 浏览器会自动再次发送Request去获取图片, CSS文件,或者JS文件。 • 4. 等所有的文件都下载成功后。 网页就被显示 出来了。
目录
• 什么是HTTP协议 • Web服务器,浏览器,代理服务器 • URL详解 • HTTP协议是无状态的 • 打开一个网页需要浏览器发送很多次Request • HTTP消息的结构 • Get和Post方法的区别 • 状态码
什么是HTTP协议
• 协议是指计算机通信网络中两台计算机之间进行 通信所必须共同遵守的规定或规则,超文本传输 协议(HTTP)是一种通信协议,它允许将超文本标 记语言(HTML)文档从Web服务器传送到客户端的 浏览器
状态码
• Response 消息中的第一行叫做状态行,有HTTP协议 版本号, 状态码, 状态消息 三部分组成。 • 状态码用来告诉HTTP客户端,HTTP服务器是否产生了 预期的Response. • HTTP/1.1中定义了5类状态码, 状态码由三位数字组 成,第一个数字定义了响应的类别 • 1XX 提示信息 - 表示请求已被成功接收,继续处理 • 2XX 成功 - 表示请求已被成功接收,理解,接受 • 3XX 重定向 - 要完成请求必须进行更进一步的处理 • 4XX 客户端错误 - 请求有语法错误或请求无法实现 • 5XX 服务器端错误 - 服务器未能实现合法的请求
Get和Post方法的区别
• 我们看看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消息的结构
HTTP消息的结构
• 再看Response消息的结构, 和Request消息的结构 基本一样。 同样也分为三部分,第一部分叫 Response line, 第二部分叫Response header,第 三部分是body. header和body之间也有个空 行, 结构如下图
HTTP消息的结构
URL详解
• URL 的一个例子 • http://www.mywebsite.com/sj/test/test.aspx?nam e=sviergn&x=true#stuff
Schema: http host: www.mywebsite.com path: /sj/test/test.aspx Query String: name=sviergn&x=true Anchor: stuff
Web服务器,浏览器,代理服务器
• 当我们打开浏览器,在地址栏中输入URL,然后 我们就看到了网页。 原理是怎样的呢? • 实际上我们输入URL后,我们的浏览器给Web服 务器发送了一个Request, Web服务器接到Request 后进行处理,生成相应的Response,然后发送给 浏览器, 浏览器解析Response中的HTML,这样我 们就看到了网页,过程如下图所示
HTTP协议详解
新科
概述
• 超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协 议。所有的WWW文件都必须遵守这个标准。设 计HTTP最初的目的是为了提供一种发布和接收 HTML页面的方法。1960年美国人Ted Nelson构思 了一种通过计算机处理文本信息的方法,并称之 为超文本(hypertext),这成为了HTTP超文本传 输协议标准架构的发展根基。Ted Nelson组织协 调万维网协会(World Wide Web Consortium)和 互联网工程工作小组(Internet Engineering Task Force )共同合作研究,最终发布了一系列的RFC, 其中著名的RFC 2616定义了HTTP 1.1。
Get和Post方法的区别
• Http协议定义了很多与服务器交互的方法,最基 本的有4种,分别是GET,POST,PUT,DELETE. 一个 URL地址用于描述一个网络上的资源,而HTTP中 的GET, POST, PUT, DELETE就对应着对这个资源的 查,改,增,删4个操作。 我们最常见的就是 GET和POST了。GET一般用于获取/查询资源信息, 而POST一般用于更新资源信息.
ຫໍສະໝຸດ Baidu
状态码
• • • • • • • • • • • • • • • • • • • 一、200状态码: 成功2××: 成功处理了请求的状态码。 1、200 :服务器已成功处理了请求并提供了请求的网页。 2、204: 服务器成功处理了请求,但没有返回任何内容。 二、300状态码: 重定向3×× :每次请求中使用重定向不要超过 5 次。 1、301: 请求的网页已永久移动到新位置。当URLs发生变化时,使用301代码。搜索引擎索引中保存新的URL。 2、302: 请求的网页临时移动到新位置。搜索引擎索引中保存原来的URL。 3、304: 如果网页自请求者上次请求后没有更新,则用304代码告诉搜索引擎机器人,可节省带宽和开销。 三、400状态码: 客户端错误4×× :表示请求可能出错,妨碍了服务器的处理。 1、400: 服务器不理解请求的语法。 2、403: 服务器拒绝请求。 3、404: 服务器找不到请求的网页。服务器上不存在的网页经常会返回此代码。 4、410 :请求的资源永久删除后,服务器返回此响应。该代码与 404(未找到)代码相似,但在资源以前存在而现在不存 在的情况下,有时用来替代404 页面代码。如果资源已永久删除,应当使用 301 指定资源的新位置。 四、500状态码: 服务器错误5×× :表示服务器在处理请求时发生内部错误。这些错误可能是服务器本身的错误,而不是请求出错。 1、500 :服务器遇到错误,无法完成请求。 2、503: 服务器目前无法使用(由于超载或停机维护)。
HTTP消息的结构
• 先看Request 消息的结构, Request 消息分为3部 分,第一部分叫Request line, 第二部分叫Request header, 第三部分是body. header和body之间有个 空行, 结构如下图
HTTP消息的结构
• 第一行中的Method表示请求方法,比如 "POST","GET", Path-to-resoure表示请求的资源, Http/version-number 表示HTTP协议的版本号 • 当使用的是"GET" 方法的时候, body是为空的 • 比如我们打开博客园首页的request 如下 • GET http://www.cnblogs.com/ HTTP/1.1 Host: www.cnblogs.com
Web服务器、浏览器
代理服务器
代理服务器就是网络信息的中转站,有什么功能 呢? 1. 提高访问速度, 大多数的代理服务器都有缓存 功能。 2. 突破限制, 也就是翻墙了 3. 隐藏身份。
URL详解
• URL(Uniform Resource Locator) 地址用于描述一个网络上 的资源, 基本格式如下 • schema://host[:port#]/path/.../[?query-string][#anchor] • scheme 指定底层使用的协议(例如:http, https, ftp) • host HTTP服务器的IP地址或者域名 • port# HTTP服务器的默认端口是80,这种情况下 端口号可以省略。如果使用了别的端口,必须指明,例 如 http://www.cnblogs.com:8080/ • path 访问资源的路径 • query-string 发送给http服务器的数据 • anchor锚
相关文档
最新文档