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. 使用iTEXT库生成pdf

    iTEXT下载地址 https://sourceforge.net/projects/itext/files/ 选择绿色的按钮,下载最新版本,解压后是一些jar包 为了使用方便,将文件夹放到JAVA_ ...

  2. PHP Cron Expression Parser ( LARAVEL )

       The PHP cron expression parser can parse a CRON expression, determine if it is due to run, calcul ...

  3. Vue 使用中的小技巧

    在vue的使用过程中会遇到各种场景,当普通使用时觉得没什么,但是或许优化一下可以更高效更优美的进行开发.下面有一些我在日常开发的时候用到的小技巧,在下将不定期更新~ 1.多图表resize事件去中心化 ...

  4. activemq , redis

    activemq是干什么的?即时消息通信,简单说: A发送消息给activemq 服务,B监听服务获取消息.假如有如下场景: A发送了一个请求,但是这个请求需要做 10 项工作,如果按照正常操作,需要 ...

  5. IOS初级:UIScrollView & UIPageControl

    UIScrollView其实构建的就像一列很长的火车,每滑动一个屏幕,展示一节车厢. //主屏幕高度 #define kScreenHeight [UIScreen mainScreen].bound ...

  6. python代码检索小引擎

    https://www.programcreek.com/python/

  7. gunicorn配置文件

    最近使用gunicorn部署,感觉用命令参数方式启动比较繁琐,而且有时候就忘了以前怎么设置的了.一笑... 上stackoverflow查了查,找到了一个官方示例,在这里. 官方解释在这里. 记在这里 ...

  8. hadoop mapreduce 写入hbase报错 Session 0x0 for server null, unexpected error, closing socket connection and attempting reconnect

    现象:map任务构造数据正常,reduce任务,开始也正常,速度很快 ,在hbase 的管理界面,可以看到,5W以上的请求数 当reduce 执行到 70% 左右的时候,就堵住了,查看yarn的web ...

  9. 2018.12.15 poj3415 Common Substrings(后缀自动机)

    传送门 后缀自动机基础题. 给两个字符串,让你求长度不小于kkk的公共子串的数量. 这题可以用后缀自动机解决废话 考虑对其中一个字串建出后缀自动机,然后用另一个在上面跑,注意到如果一个状态有贡献的话, ...

  10. jQuery Growl插件(消息提醒)

    ps:菜鸟教程 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <s ...