一、什么是HTTP协议呢?

维基百科 写道
超文本传输协议(英文:HyperText Transfer Protocol,缩写:HTTP)是互联网上应用最为广泛的一种网络协议。
HTTP是一个客户端终端(用户)和服务器端(网站)请求和应答的标准(TCP)。

所谓HTTP就是超文本传输协议的缩写,他是万维网的基础。

二、URL

HTTP协议是通过URL来访问资源的,URL成为统一资源定位符,有时也俗称网页地址。

三、HTTP请求

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

HTTP请求方法有:

GET ------ 向特定的资源发出请求

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

HEAD ------ 向服务器索要与GET请求相一致的响应,只不过响应体将不会被返回。这一方法可以在不必传输                   整个响应内容的情况下,就可以获取包含在响应消息头中的元信息。

PUT ------ 向指定资源位置上传其最新内容。

DELETE ------ 删除指定资源。

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

CONNECT ------ 保留将来使用。

OPTIONS ------ 返回服务器针对特定资源所支持的HTTP请求方法。也可以利用向Web服务器发送’*’的请求                          来测试服务器的功能性。

四、HTTP响应

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

HTTP响应状态码:

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

常见的状态码:

200  : OK --- 客户端请求成功;

400  : Bad Request  --- 客户端请求有语法错误,不能被服务器所理解;

401  : Unauthorized --- 请求未经授权;

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

404  : Not Found --- 请求资源不存在;

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

503  : Server Unavailable --- 服务器当前不能处理客户端的请求 ;

五、HTTP消息报头实例

Remote Address:141.101.112.193:
Request URL:https://osu.ppy.sh/
Request Method:GET
Status Code: OK
Response Headers
cache-control:no-cache
cf-ray:254ac51bf02e13ef-LAX
content-encoding:gzip
content-type:text/html; charset=UTF-
date:Mon, Dec :: GMT
expires:Mon, Dec :: GMT
pragma:no-cache
server:cloudflare-nginx
status: OK
strict-transport-security:max-age=
version:HTTP/1.1
Request Headers
:host:osu.ppy.sh
:method:GET
:path:/
:scheme:https
:version:HTTP/1.1
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
cache-control:max-age=

以上是一个HTTP消息报头,可以通过开发者选项network查看。

转载自本人ITeye链接:http://xiaozhuang0706.iteye.com/blog/2264083

HTTP协议介绍的更多相关文章

  1. TCP/IP 协议介绍

    转自http://blog.jobbole.com/104886/ 一.TCP/IP 协议介绍 在介绍 HTTP 协议之前,先简单说一下TCP/IP协议的相关内容.TCP/IP协议是分层的,从底层至应 ...

  2. 第二章 ZAB协议介绍

    ZAB ( ZooKeeper Atomic Broadcast , ZooKeeper 原子消息广播协议)是zookeeper数据一致性的核心算法. ZAB 协议并不像 Paxos 算法那样,是一种 ...

  3. JSON-RPC轻量级远程调用协议介绍及使用

    这个项目能够帮助开发人员利用Java编程语言轻松实现JSON-RPC远程调用.jsonrpc4j使用Jackson类库实现Java对象与JSON对象之间的相互转换.jsonrpc4j包含一个JSON- ...

  4. [转]流媒体协议介绍(rtp/rtcp/rtsp/rtmp/mms/hls)

    [转]流媒体协议介绍(rtp/rtcp/rtsp/rtmp/mms/hls) http://blog.csdn.net/tttyd/article/details/12032357 RTP       ...

  5. Python基础教程之udp和tcp协议介绍

    Python基础教程之udp和tcp协议介绍 UDP介绍 UDP --- 用户数据报协议,是一个无连接的简单的面向数据报的运输层协议.UDP不提供可靠性,它只是把应用程序传给IP层的数据报发送出去,但 ...

  6. 常用音频协议介绍&&有关音频编码的知识与技术参数

    (转载)常用音频协议介绍 会议电视常用音频协议介绍及对比白皮书 一.数字化音频原理:声音其实是一种能量波,因此也有频率和振幅的特征,频率对应于时间轴线,振幅对应于电平轴线.通常人耳可以听到的频率在20 ...

  7. 各种开源协议介绍 BSD、Apache Licence、GPL V2 、GPL V3 、LGPL、MIT_转

    转自:各种开源协议介绍 BSD.Apache Licence.GPL V2 .GPL V3 .LGPL.MIT 现今存在的开源协议很多,而经过Open Source Initiative组织通过批准的 ...

  8. OSPF协议介绍及配置 (上)

    OSPF协议介绍及配置 (上) 一.OSPF概述 回顾一下距离矢量路由协议的工作原理:运行距离矢量路由协议的路由器周期性的泛洪自己的路由表,通过路由的交互,每台路由器都从相邻的路由器学习到路由,并且加 ...

  9. VRRP协议介绍--转

    http://www.cnblogs.com/jony413/articles/2697404.html VRRP协议介绍 参考资料: RFC 3768 1. 前言 VRRP(Virtual Rout ...

  10. SNMP协议介绍

    SNMP协议介绍 一.什么是SNMP SNMP:“简单网络管理协议”,用于网络管理的协议.SNMP用于网络设备的管理.SNMP的工作方式:管理员需要向设备获取数据,所以SNMP提供了 “读”操作:管理 ...

随机推荐

  1. java基础:修改数组对应下标的数据

  2. 1293: [SCOI2009]生日礼物

    1293: [SCOI2009]生日礼物 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 1096  Solved: 584[Submit][Statu ...

  3. MySQL+SSM+Ajax上传图片问题

    第一次写上传图片的代码,碰到很多问题.昨天做了整整一天,终于在晚上的时候成功了.大声欢呼. 但是,做完之后,还是有很多问题想不通.所以在这里也算是写个笔记,日后忘记了可以回顾,也算请教各路朋友.(^_ ...

  4. 启动tomcat直接报错:org.apache.tomcat.util.digester.Digester startElement

    今天很奇怪,自己手动搭建了一个ssm(spring+springmvc+mybatis)的项目,然后添加到tomcat下,启动直接报错: 2017-3-19 9:24:47 org.apache.to ...

  5. NoSQL注入的分析和缓解

    本文要点介绍: 1.了解针对NoSQL的新的安全漏洞 2.五类NoSQL攻击手段,比如重言式.联合查询.JavaScript 注入.背负式查询(Piggybacked queries),以及跨域违规 ...

  6. ListView的性能优化

    @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder viewHol ...

  7. 解决ubuntu更新中断后报错问题

    今天在更新ubuntu的时候,更新了一半被我强制关闭了,就报错了 当再使用sudo apt-get update命令时出现了dpkg was interrupted,you must manually ...

  8. SQL Server数据库读取数据的DateReader类及其相关类

    之前学了几天的SQL Server,现在用C#代码连接数据库了. 需要使用C#代码连接数据库,读取数据. 涉及的类有: ConfigurationManage SqlConnection SqlCom ...

  9. [原创]HBase学习笔记(4)- 数据导入

    需要分别从Oracle和文本文件往HBase中导入数据,这里介绍几种数据导入方案. 1.使用importTSV导入HBase importTSV支持增量导入.新数据插入,已存在数据则修改. 1.1.首 ...

  10. MyBatis快速入门(一)

    一.MyBatis背景介绍 MyBatis是支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索.MyBatis使用简单的 ...