HTTP协议的理解

1、http介绍

HTTP协议,也称为超文本传输协议,是从服务器传输超文本到客户端的一种协议。指的就是一种在不一样网络设备之间传输信息的规定,有了它,不一样设备之间能够以一种统一的规则进行数据传输浏览器

2、URI与URL

HTTP使用URI创建链接和传输数据
URI:统一资源标识符,用来指示这是什么资源,你能够理解为一我的的身份证号码。
URL:统一资源定位符,用来指示资源的具体位置,网络上的每个资源都具备其单独的存储位置,能够理解为一我的的家庭住址。服务器

3、特色

一、基于请求-响应的链接方式

协议规定,请求从客户端发出,服务端收到请求后给予响应。必定是客户端先发出的请求,服务端不会主动发送响应。cookie

二、无状态

HTTP是无状态协议,协议不会对请求与响应的通讯状态进行保存,每当有新的请求就会有新的响应发出。协议为了更快的处理事务,不会保留前面的请求响应报文。可是需求的变化,是的httpp须要保存以前的请求响应,好比在登陆到一个网站后,跳转到第三方网站,还须要前面的网站保存着登陆状态,因而在http1.1中,增长了cookie的技术以实现这种需求。网络

三、无链接

是指每次链接只处理一个请求,在收到请求-发送响应-收到客户端的应答后,服务器会断开与客户端的链接,这样在处理大量请求时,能够节约不少服务器资源,提升并发性能。
无链接有两种状态,早期版本中,在完成请求-响应后,马上断开链接。在http/1.1中,完成请求-响应后,服务器等待一个固定的时间,发现客户端再也不发送请求后,才断开链接,这样的好处是在客户端频繁发送请求时,能够节省不少创建链接花费的时间。等待时间通常为3秒钟,也能够根据本身网站用户行为进行必定的改变。并发

4、HTTP请求方法

GET

请求指定页面,返回实体主体高并发

POST

发送请求,请求的内容包含在请求体中post

与GET相似,可是返回的内容是报头,没有具体内容。性能

PUT

想服务器中上传资源,取代指定位置的内容。测试

DELETE

删除服务器中指定页面网站

CONNECT

HTTP/1.1 协议中预留给可以将链接改成管道方式的代理服务器。

OPTIONS

容许客户端查看服务器性能

TRACE

回显服务器收到的请求,用于测试和诊断

PATCH

对put方法的补充,用来局部更新资源。

5、请求与响应报文格式

请求

(1)请求行:包括请求方式,要访问的资源,http协议版本
(2)请求头:包括首部字段,好比HOST地址,浏览器头,接受内容的格式等
(3)空行:请求头后必须是空行,即便后面的请求数据是空行,这个空行也要有
(4)请求数据:存储的资源信息

响应

(1)响应头:包括版本号,状态码(200),状态消息(OK)
(2)响应头:包括时间,内容长度等
(3)空行
(4)响应数据:服务器返回给客户端的信息

6、状态码

状态码有5种类别,分别以不一样的数字开头,不一样状态码有不一样的含义

类别 功能
1XX 指示信息,表示请求已经接受,继续处理
2XX 成功,表示请求已经被接受处理
3XX 重定向,请求须要进行更进一步的操做
4XX 客户端错误,请求有语法错误或者不被理解
5XX 服务器内部错误,请求没法处理

常见的状态码:
200:OK 响应成功
301 - 资源(网页等)被永久转移到其它URL
302 - 临时跳转
400 Bad Request - 客户端请求有语法错误,不能被服务器所理解
401 Unauthorized - 请求未经受权,这个状态代码必须和WWW-Authenticate报头域一块儿使用
404 - 请求资源不存在,多是输入了错误的URL
500 - 服务器内部发生了不可预期的错误
503 Server Unavailable - 服务器当前不能处理客户端的请求,一段时间后可能恢复正常。

七:HTTP工做原理

HTTP协议定义了客户端如何向服务器请求数据,以及服务器如何将数据发送给客户端。
一、客户端经过浏览器与服务器创建TCP套接字
二、客户端经过TCP套接字向服务器发送请求报文。
三、服务器接收到请求后,向客户端发送响应报文。
四、客户端接收到响应报文后,若是connection是close,能够当即断开链接;若是链接方式的keepalive,则能够保持链接一段时间,在这个时间里客户端与服务器之间能够继续传输数据。

五、客户端的浏览器解析响应报文,展现给用户。

TCP套接字:就是对网络中不一样主机上的应用进程之间进行双向通讯的端点的抽象。一个套接字就是网络上进程通讯的一端,提供了应用层进程利用网络协议交换数据的机制。

相关文章
相关标签/搜索