HTTP协议详解

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HTTP协议详解相关的知识,希望对你有一定的参考价值。

HTTP协议简介

    HTTP协议,中文名称“超文本传输协议”,是互联网最常用的一种网络协议。HTTP的重要应用就是WWW服务(上网服务),即用于WEB浏览器和WEB服务器之间通信的应用,我们习惯称为www应用或web应用。

    当初设计HTTP协议的目的就是提供一种发布和接收html(一种页面标记语言 超文本标记语言)页面的方法。

    WWW,简称web,中文译为“万维网”。WWW应用使用的是HTTP协议。HTTP协议的WWW服务的默认服务端口为80;另外一个加密的WWW服务https的默认端口为443.

HTTP协议的版本

    HTTP协议从诞生到现在经历了HTTP/0.9, HTTP/1.0, HTTP/1.1 这几个版本,其中,HTTP/1.0是第一个得到广泛使用的版本,而HTTP/1.1为当前使用的主流版本。

HTTP/1.0介绍

    HTTP/1.0在HTTP/0.9的基础上增加了HTTP请求头、支持更多的请求方法,以及对多媒体对象的处理。HTTP/1.0规定浏览器与服务器只保持短暂的连接,浏览器的每次请求都需要与服务器建立一个TCP连接,服务器完成请求处理后立即断开TCP连接,服务器不跟踪每个客户也不记录过去的请求。

HTTP/1.1介绍

    HTTP/1.1重要是修复HTTP设计中的缺陷,从可扩展性,缓存处理,宽带优化,持久连接,HOST头,错误通知,消息传递、内容协商几个方面做了相关改进。

    在连接方面,HTTP/1.1支持持久连接,在一个TCP连接上可以传送多个HTTP请求和响应,减少了建立和关闭连接的消耗和延迟。

    在请求头方面,HTTP/1.1增加更多的请求头和响应头信息,来增强HTTP功能。这使得WEB浏览器可以使用主机头名来明确表示要访问服务器上的哪个WEB站点,这样就可以使用WEB服务在同一个IP地址和端口上配置多个虚拟WEB站点。

HTTP请求方法

    在HTTP通信中,每个HTTP请求报文都包含一个方法。用以告诉WEB服务器端要执行什么具体的动作,这些动作包括:获取指定WEB页面、提交内容到服务器、删除服务器上的资源等,这些HTTP请求报文中包含的方法被称为HTTP方法。

常用的HTTP方法

    GET    客户端请求指定资源信息,服务器返回指定资源

    HEAD   只请求响应报文中的HTTP首部

    POST   将客户端的数据提交到服务器,例:注册表单

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

    DELETE 请求服务器删除指定的资源

    MOVE   请求服务器将指定的页面移至另一个网络地址

HTTP状态码

    每当客户端向服务器发送一个HTTP请求时,WEB服务器都会返回一个状态响应代码。这个状态码是一个三位数字,作用是告知WEB客户端此次的请求是否成功,或者是采取其它的动作方式。

HTTP/1.1的状态码分为五大类

 100-199  用于指定客户端相应的某些动作

 200-299  用于表示请求成功

 300-399  用于已经移动的文件且常被包含在定位头信息中指定新的地址信息。(重定向)

 400-499  用于指出客户端的错误

 500-599  用于指出服务器错误

常见的状态码及对应的作用

200 OK 服务器成功返回网页,这是成功的http请求返回的标准状态码

301 Moved Permanently 永久重定向

403 Forbidden 禁止访问,这个请求是合法的,但是服务器端因为匹配了预先设置的规则而拒绝响应客户端的请求,此类问题一般为服务器权限配置不当所致。

404 Not Found 服务器找不到客户端请求的指定页面,可能是客户端请求了服务器不存在的资源导致。

500 Internal Server Error 内部服务器错误,服务器遇到了意料不到的情况,不能完成客户的请求。这是一个笼统的报错,一般为服务器的设置或者内部程序问题导致。(selinux未关闭,)

502 Bad Gateway 坏的网关,一般是代理服务器请求后端服务时,后端服务不可用或者没有完成响应网关服务器,一般为代理服务器下面的节点出问题导致。

503 Service Unavailable 服务当前不可用,可能因为服务器超载或停机维护导致,或者是代理服务器后面没有可以提供服务的节点。

504 Gateway Timeout 网关超时,一般是网关代理服务器请求后端服务时,后端服务没有在特定的时间内完成处理请求,一般是服务器过载导致没有在指定的时间内返回数据给代理服务器。

HTTP报文有两种

一种是WEB客户端发往WEB服务器的HTTP报文,称为请求报文。

一种是从WEB服务器发往WEB客户端的报文,称为响应报文。

HTTP请求报文由请求行、请求头部(header)、空行和请求报文主体几个部分组成。

  请求行  请求方法  URL           协议版本

          GET   /index.html   HTTP/1.1

  请求头  字段名1: 值1

          字段名2: 值2


  空行

  请求报文主体 GET方法没有请求报文主体,POST方法才有

HTTP响应报文由起始行、响应头部(header)、空行和响应报文主体几个部分组成。

HTTP响应报文的一般格式

    起始行    协议及版本号    数字状态码   状态信息

         HTTP/1.1        200          OK

    响应头部  字段名1:值1

     字段名2:值2

    空行

    响应报文主体(可能是网页,视频,图片)

Fiddler Web Debugger 4(简称Fiddler4)是一款功能强大的HTTP网页抓包调试工具(HTTP协议调试代理工具)。Fiddler4数据抓包软件能记录所有客户端和服务器的http和https请求,允许用户监视,设置断点,甚至修改输入输出数据。

HTTP协议MIME(多用途因特网邮件扩展)类型介绍

当web服务器响应HTTP请求时,会为每一个HTTP对象数据加一个MIME类型。当WEB浏览器获取到服务器返回的对象时,会去查看相关的MIME类型,进行相应处理。

    可以从www服务软件nginx的配置文件conf目录下,查看其支持的媒体(MIME)类型。

    less mime.types

    MIME类型         文件类型

    text/html     html htm shtml;

    text/css         css;

    image/gif        gif;

    ......

HTTP协议之URI与URL

URL,全称“统一资源定位符”,也被称为网页地址;

URI 统一资源标识符

可以这样理解,所有的URL都是URI。

本文出自 “青春邓勇” 博客,请务必保留此出处http://dengyong.blog.51cto.com/8409869/1932535

以上是关于HTTP协议详解的主要内容,如果未能解决你的问题,请参考以下文章

HTTP协议详解

Https协议详解

HTTP协议---HTTP协议详解

URL&HTTP协议详解

HTTP协议格式详解

HTTP协议详解