首页 > Web开发 > 详细

HTTP协议简介

时间:2018-12-24 14:24:06      阅读:27      评论:0      收藏:0      [点我收藏+]

标签:col   服务器   bad   dde   代理服   内容   -a   多个参数   head   

HTTP简介

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

  1. 基于TCP/IP通信协议来传递数据(html文件、图片、查询结果等)
  2. 属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。
  3. 工作于客户端-服务端架构之上,浏览器作为http客户端通过URL向http服务器(web服务器)发送所有请求。web服务器根据接受到的请求后,向客户端发送响应信息。

主要特点:

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

URL

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

URL(Uniform Resource Locator)统一资源定位符,是互联网上用来标识某一处资源的地址。

https://www.axce.com:8080/news/index.html?borId=5&userId=10&page=1#name

从上面的URL可以看出,一个完整饿URL包括以下几部分:

  1. 协议部分:http: 使用的http协议。(HTTP、FTP)后面的// 为分隔符
  2. 域名部分:www.axce.com。也可以用IP地址作为域名使用
  3. 端口部分:跟在域名后面的是端口,域名和端口之间使用:作为分隔符。端口不是一个URL必须的部分,如果省略端口部分,将采用默认端口
  4. 虚拟目录部分:/new/  从域名后的第一个/开始到最后一个/ 为止,是虚拟目录部分。不是必须的
  5. 文件名部分:index.html  从域名后的最后一个/开始到?为止;如果没有?,则是从域名后的最后一个/ 开始到#为止;如果没有?和#,那么从域名后的最后一个/ 开始到结束,都是文件名部分。不是必须的,如果省略,则使用默认的文件名
  6. 锚部分:从#开始到最后。也不是必须的
  7. 参数部分:从?开始到#为止之间的部分为参数部分(搜索部分、查询部分)。参数可以允许有多个参数,参数与参数之间用&作为分隔符

URL和URI的区别

URI:web上可用的每种资源如html文档、图像、视频片段、程序等都是URI定位的。一般由三部分组成:

  1. 访问资源的命名机制
  2. 存放资源的主机名
  3. 资源自身的名称,由路径表示,着重强调于资源

URL:一种具体的URI,可以用来表示一个资源,而且还指明了如何locate这个资源。一般由三部分组成:

  1. 协议(服务方式)
  2. 存有该资源的主机IP地址(有时也包括端口号)
  3. 主机资源的具体地址,如目录和文件名等

URN:(unforim resource name)统一资源命名,通过名字来标识资源。命名资源但不指定如何定位资源

HTTP请求消息Request

    客户端发送一个HTTP请求到服务器的请求消息包括以下格式:

    请求行(request line) 请求头部(header)、空行和请求数据四个部分组成。

HTTP响应消息response

   一般情况下,服务器接受并处理客户端发过来的请求后会返回一个http的响应消息。

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

 

HTTP状态码

状态码有三位数字组成,第一个数字定义了响应的类别,共分五种类别:

  • 1xx:指示信息--表示请求已接收,继续处理
  • 2xx:成功--表示请求已被成功接收、理解、接受
  • 3xx:重定向--要完成请求必须进行更进一步的操作
  • 4xx:客户端错误--请求有语法错误或请求无法实现
  • 5xx:服务器端错误--服务器未能实现合法的请求

常见的状态码:

200   ok                            / / 客户端请求成功

400   bad request           // 客户端请求有语法错误,不能被服务器所理解

401 unauthorized              // 请求未经授权,这个状态码必须和www-authenticate报头域一起使用

403 Forbidden               // 服务器收到请求,但是拒绝提供服务

404 not Found              // 请求资源不存在,eg:输入了错误的URL

500 Internal Server Error   // 服务器发生不可预期的错误

503   Server Unavailable    // 服务器当前不能处理客户端的请求,一段时间后可能恢复正常

 

HTTP请求方法

HTTP1.0定义了三种请求方法:GET POST 和 HEAD方法

HTTP1.1新增了五种请求方法:options  put delete trace 和connect 方法。

    get :请求指定的页面信息,并返回实体主体

    head:类似于get请求,只不过返回的响应中没有具体的内容,用于获取报头

    post:向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中,post请求可能会导致新的资源的建立和/或已有资源的修改。

   put:从客户端向服务器传送的数据取代指定的文档的内容

   delete: 请求服务器删除指定的页面

   connect: http1.1协议中预留给能够将连接改为管道方式的代理服务器。

   options:允许客户端查看服务器的性能

   trace:回显服务器收到的请求,主要用于测试或诊断

 

 

 

技术分享图片

HTTP协议简介

标签:col   服务器   bad   dde   代理服   内容   -a   多个参数   head   

原文:https://www.cnblogs.com/girlalittle/p/10168258.html

(0)
(0)
   
举报
评论 一句话评论(0
0条  
登录后才能评论!
© 2014 designnerd.net 版权所有 鲁ICP备09046678号-4
打开技术之扣,分享程序人生!
             

鲁公网安备 37021202000002号