1.HTTP是什么?

  

它的全名叫:HyperText Transfer Protocol ,中国名字:超文本传输协议 ;

它是可靠的数据传输协议,是Internet 的多媒体信使,即使数据相隔天涯海角,它也能确保数据准确、无误的传递给彼此,这有点像快递员的工作(不过快递员可能会损坏、遗失你的东西,HTTP不会);

每天有数以亿计的web浏览器通过它获取web服务器上的HTML页面、音/视频文件、JPG图片、java小程序...等等信息。

2.客户端和服务器

HTTP客户端:你每天都在使用的各种web浏览器(IE、Google Chrome、Firefox ...and so on)

Web服务器:它是web资源的宿主,所有的web资源(静态文件或生成动态资源的软件程序)都放在web服务器里

简单的交互过程:HTTP客户端向服务器发出请求,服务器在HTTP响应中回送被请求的数据

3.HTTP传输数据的媒体类型MIME

HTTP给每种传输对象都定义了一个MIME Type的格式标签(在HTTP信息头的Connect-type属性中定义:Connect-type:text/html),浏览器从服务器获取一个对象时,会检查相关的MIME类型,看看它是否知道如何去处理这个对象。

常见的MIME类型有数百种之多,大多数浏览器都支持处理这些对象类型。

以下列举几种MIME:

HTML文本文档:text/html

JPEG图片:image/jpeg

GIF图片:image/gif

js文件:application/x-javascript

更多MIME类型请参看:http://www.w3school.com.cn/media/media_mimeref.asp

4.URI、URL、URN

URI:Uniform Resource Identifier 统一资源标识符,它是web服务器资源的名字(就像你的邮寄地址一样,有了它,在全世界都能根据定位到你并确保信件能寄到你手中)

给定了web资源的URI,HTTP就可以定位到这个web资源并解析出对象。

URI有两种形式:URL和URN

URL:Uniform Resoure Locator 统一资源定位符,它是URI最常见的一种形式(目前大家接触到的URI基本都是URL形式吧),它描述了一个特定Web服务器上某一资源的特定位置

URL标准格式包含三个部分,以URL:http://www.cnblogs.com/wolfshining/p/7921999.html 为例:

第一部分:scheme 它说明了访问资源时使用的协议类型(通常就是HTTP协议http://)

第二部分:服务器地址或域名(www.cnblogs.com)

第三部分:路径,它指向某一特定资源(wolfshining/p/7921999.html)

URN:Uniform Resource Name 统一资源名,它是URI的第二种形式,通过URN可以将资源四处搬移(因为URN没有位置),还可以用同一个名字通过多种网络协议来访问资源,URN还处于实验阶段

下图显示HTTP客户端如何通过URL精确访问web服务器某特定资源的:

5.HTTP事务

一个HTTP事务由一条HTTP客户端发往web服务器的请求命令(方法)和一个从服务器返回给客户端的响应结果组成。

发送的请求或响应结果都是通过HTTP报文的格式进行的:

6.HTTP方法与状态码

HTTP请求命令也通常叫做HTTP方法(HTTP Method),每个HTTP请求报文里都包含一个Method,这个Method告诉浏览器需要执行什么操作(是获取一个静态文件,还是删除一个文件等等)

常见的HTTP Method包含下列五种:

HTTP 方法 描述
GET 从服务器向客户端发送指定的资源
PUT 将客户端发来的数据存储到指定的资源中去
DELETE 从服务器中删除指定资源
POST 将客户端发来的数据发送到一个服务器网关应用程序
HEAD 仅发送指定资源响应中的HTTP首部

常见的HTTP状态码:

HTTP状态码 描述
1XX 指定客户端应相应的某些动作,代表请求已被接受,需要继续处理。由于 HTTP/1.0 协议中没有定义任何 1xx 状态码,所以除非在某些试验条件下,服务器禁止向此类客户端发送 1xx 响应。
2XX 请求成功处理完毕。表示请求已成功,请求所希望的响应头或数据体将随此响应返回
3XX 重定向,代表需要客户端采取进一步的操作才能完成请求,这些状态码用来重定向,后续的请求地址(重定向目标)在本次响应的 Location 域中指明。这系列中最常见的有301、302状态码。
4XX 客户端错误,表示请求错误。代表了客户端看起来可能发生了错误,妨碍了服务器的处理。常见有:401、404状态码。
5XX 服务器错误,服务器在处理请求的过程中有错误或者异常状态发生,也有可能是服务器意识到以当前的软硬件资源无法完成对请求的处理。常见有500、503、502状态码。

HTTP协议(一)基本概念、HTTP方法、HTTP状态码的更多相关文章

  1. HTTP/1.1标准请求方法和状态码

    HTTP/1.1标准自从1999年制定以来至今仍然是一个应用广泛并且通行的标准 相关文档 RFC2616:Hypertext Transfer Protocol -- HTTP/1.1 在RFC658 ...

  2. HTTP协议----请求方法和状态码

    现在广泛使用的是HTTP/1.1版本,发布于1997年. 理解HTTP协议,首先从请求开始,比如: POST /form/entry HTTP/1.1 格式为: 请求方法 URI 协议版本 请求方法: ...

  3. HTTP协议简介详解 HTTP协议发展 原理 请求方法 响应状态码 请求头 请求首部 java模拟浏览器客户端服务端

    协议简介 协议,自然语言里面就是契约,也是双方或者多方经过协商达成的一致意见; 契约也即类似于合同,自然有甲方123...,乙方123...,哪些能做,哪些不能做; 通信协议,也即是双方通过网络通信必 ...

  4. 02 http协议之方法与状态码

    一:HTTP请求信息和响应信息的格式 请求: ()请求行 ()请求头信息 ()请求主体信息(可以没有) () 头信息结束后和主体信息之间要空一行 请求行又分3部分 请求方法 请求路径 所用的协议 请求 ...

  5. HTTP协议中request报文请求方法和状态响应码

    一个HTTP请求报文由4部分组成: 请求行(request line) 请求头部(header) 空行 请求数据 下图给出了请求报文的一般格式: 请求行中包括了请求方法,常见的请求方法有: GET:从 ...

  6. HTTP 基础(特性、请求方法、状态码、字段)

    1. HTTP 简介(含义.特性.缺点) 2. HTTP 报文 3. GET 和 POST 4. 状态码 5. HTTP 头字段 1. HTTP 简介 HTTP 的含义 HTTP (HyperText ...

  7. (二)http请求方法和状态码

    1.HTTP请求方法 根据 HTTP 标准,HTTP 请求可以使用多种请求方法. HTTP1.0 定义了三种请求方法: GET.POST 和 HEAD方法. HTTP1.1 新增了六种请求方法:OPT ...

  8. HTTP协议 -- 认清协议常用状态码

    HTTP协议作为web服务的基础,理所应当受到重视,但是周围的同事能够讲清楚HTTP协议的凤毛麟角.既然是基础,就应该早一点掌握,所以近半年(2016-2月——2016年6月),不准备学习新技术了.首 ...

  9. HTTP协议 (六) 状态码详解

    HTTP协议 (六) 状态码详解 HTTP状态码,我都是现查现用. 我以前记得几个常用的状态码,比如200,302,304,404, 503. 一般来说我也只需要了解这些常用的状态码就可以了.  如果 ...

随机推荐

  1. [Robot Framework] SikuliLibrary的关键字执行依赖java进程,但是上次的java进程如果没有杀掉,robot framework控制台的日志出不来,怎么办?

    如果在suite的setup里面杀掉java进程:AutoItLibrary.Run | taskkill /F /IM java.exe 执行sikuli的关键字会报这样的错误: Connectio ...

  2. 下载win10

    http://www.xitongtiandi.net/win10yuanban/2039.html#download

  3. activiti5.22整合modeler时出错TypeError: Cannot read property 'split' of undefined

    activiti5.22.0整合modeler时,打开的流程页面不显示工具栏和左边的控件栏,产生如下的错误: TypeError: Cannot read property 'split' of un ...

  4. [ASP.NET]static变量和viewstate的使用方法

    在.Net平台下进行CS软件开发时,我们经常遇到以后还要用到某些变量上次修改后的值,为了简单起见,很多人都习惯用static来定义这些变量,我也是.这样非常方便,下一次调用某个函数时该变量仍然保存的是 ...

  5. 三连击(NOIP1998)

    题目链接:三连击 典型的打表题,但cgg今天不是教你怎么打表的,而是教你正解. 这题方法多样,比如递归求解也行,反正数据也不大. 在这里我提供另一种思路,我们枚举第一个数,即最小的一个数,然后分解它以 ...

  6. hdu 5120 (求两圆相交的面积

    题意:告诉你两个圆环,求圆环相交的面积. /* gyt Live up to every day */ #include<cstdio> #include<cmath> #in ...

  7. c#的装箱和拆箱及值类型和引用类型

    装箱:它允许根据值类型创建一个对象,然后使用对这新对象的一个引用. int i = 5; object o = i; int j = (int)o; 装箱:运行时将在堆上创建一个包含值5的对象(它是一 ...

  8. 2019.01.22 bzoj3333: 排队计划(逆序对+线段树)

    传送门 题意简述:给出一个序列,支持把ppp~nnn中所有小于等于apa_pap​的'扯出来排序之后再放回去,要求动态维护全局逆序对. 思路:我们令fif_ifi​表示第iii个位置之后比它大的数的个 ...

  9. 2018.10.31 vijos1052贾老二算算术(高斯消元)

    传送门 高斯消元模板题. 写的时候反了sbsbsb错误消元的时候除数和被除数反了. 所以把板子贴上来压压惊. 代码: #include<bits/stdc++.h> using names ...

  10. tomcat https 支持android 6.0及以上版本的配置方法

    <Connector port="443"  protocol="HTTP/1.1" SSLEnabled="true" scheme ...