我爱编程

HTTP协议

2016-02-22  本文已影响563人  庸者的救赎

HTTP协议

你可能天天看到各种招聘需求上写要求:熟悉HTTP协议,TCP/IP...

什么?HTTP?啥玩意?

iOS开发非科班的可能会想:是AFN封装之类的么?

好吧...

咱们来百度一下,Google一下看看HTTP到底是啥?

前方枯燥大道,慎入!慎入!!慎入!!!

基本概念

HTTP全称叫超文本传输协议(HTTP,HyperText Transfer Protocol)是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统,是目前互联网中使用最广泛的协议之一。所有的WWW文件都必须遵守这个标准,它可以使浏览器更加高效,使网络传输减少。它不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分,以及哪部分内容首先显示(如文本先于图形)等。HTTP协议的主要特点可概括如下:

HTTP基本工作原理

一次HTTP操作称为一个事务,其工作过程可分为四步:

URL为何物?

上面已经说了,URL(Uniform Resource Identifiers)叫统一资源标识符,说白了就是个地址呗!

格式如下:

http://host[“:”port][abs_path]

例如我们在浏览器中输入http://www.baidu.com

那么浏览器会自动为我们解析为:http:115.239.210.27/index.html

报文格式

HTTP报文由从客户端到服务器的请求和从服务器到客户机的响应构成,这里涉及到TCP/IP的知识,咱们下一篇里面聊

请求行以一个方法符号开头,以空格分开,后面跟着请求的URL和协议的版本,格式如下:Method Request-URL HTTP-Version CRLF
其中 Method表示请求方法;Request-URL是一个统一资源标识符;HTTP-Version表示请求的HTTP协议版本;CRLF表示回车和换行(除了作为结尾的CRLF外,不允许出现单独的CR或LF字符)

请求消息和响应消息都是由开始行(对于请求消息,开始行就是请求行,对于响应消息,开始行就是状态行),消息报头(可选),空行(只有CRLF的行),报文主体(可选)组成

HTTP协议请求

请求方法(所有方法全为大写)有多种,列举如下:

HTTP协议响应

服务器端在接收和解释请求消息后,会返回一个HTTP响应消息,响应中的状态行格式如下:

HTTP - Version Status-Code Reason-Phrase CRLF

响应状态码由三位数字组成,第一个数字定义了响应类别,分别为1-5

常见状态码:

HTTP协议报头

普通报头

在普通报头中,有少数报头域用于所有的请求和响应消息,但并不用于被传输的实体,只用于传输的消息。常用报头如下:

请求报头

请求报头允许客户端向服务器端传递请求的附加信息以及客户端自身的信息。常用报头如下:

响应报头

响应报头允许服务器传递不能放在状态行中的附加响应信息,以及关于服务器的信息和对Request-URI所标识的资源进行下一步访问的信息。常用报头如下:

实体报头

请求和响应消息都可以传送一个实体。一个实体由实体报头域和实体正文组成,但并不是说实体报头域和实体正文要在一起发送,可以只发送实体报头域。实体报头定义了关于实体正文(eg:有无实体正文)和请求所标识的资源的元信息。常用报头如下:

好吧,一些乱七八糟的东西,留作记录,时常翻看!!!

上一篇 下一篇

猜你喜欢

热点阅读