HTTP协议概述

Posted cou1d

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HTTP协议概述相关的知识,希望对你有一定的参考价值。

Http协议:

名为超文本传输协议,基于TCP/IP通信协议来传递数据的应用层中的协议(html 文件, 图片文件, 查询结果等)的。访问的是远程的网络资源,格式是http://,http协议是在网络开发中最常用的协议

Http通信过程:

.请求:1个完整的由客户端发给服务器的HTTP请求中包含以下内容

请求行:包含请求方法,请求资源路径,Http协议版本
	GET/MOVIES/123.MP4 HTTP/1.1
请求头:包含了对客户端的环境描述,客户端请求的主机地址等信息
	Accept:用于告诉服务器,客户机支持的数据类型  (例如:Accept:text/html,image/*)
    Accept-Charset:用于告诉服务器,客户机采用的编码格式
    Accept-Encoding:用于告诉服务器,客户机支持的数据压缩格式
    Accept-Language:客户机语言环境
    Host:客户机通过这个服务器,想访问的主机名
    If-Modified-Since:客户机通过这个头告诉服务器,资源的缓存时间
    Referer:客户机通过这个头告诉服务器,它(客户端)是从哪个资源来访问服务器的(防盗链)
    User-Agent:客户机通过这个头告诉服务器,客户机的软件环境(操作系统,浏览器版本等)
    Cookie:客户机通过这个头,将Coockie信息带给服务器
    Connection:告诉服务器,请求完成后,是否保持连接
    Date:告诉服务器,当前请求的时间
 请求体:
 	就是指浏览器端通过http协议发送给服务器的实体数据。例如:name=dylan&id=110
	(get请求时,通过url传给服务器的值。post请求时,通过表单发送给服务器的值)


.响应:客户端向服务器发送请求,服务器应当做出响应,即返回数据给客户端,1个完整的HTTP响应中包含以下内容:

状态行:包含了http协议版本,状态码,状态英文名称
	HTTP/1.1 200 OK
响应头:包含了对服务器的描述,对返回数据的描述
	Server: Apache-Coyote/1.1 // 服务器的类型
    Content-Type: image/jpeg // 返回数据的类型
    Content-Length: 56811 // 返回数据的长度	
    Date: Mon, 23 Jun 2014 12:54:52 GMT // 响应的时间
    Connection:响应完成后,是否断开连接。  close/Keep-Alive
	Date:告诉浏览器,服务器响应时间
实体内容:应包含浏览器能够解析的静态内容,例如:html,纯文本,图片等等信息

总结:浏览器先向服务器发送请求,服务器接收到请求后,做相应的处理,然后封装好响应报文,再回送给浏览器。浏览器拿到响应报文后,再通过 浏览器引擎去渲染网页,解析DOM树,javascript引擎解析并执行脚本操作。web的本质,无非是:请求/处理/响应

Http特点:

1、简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。
2、灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。
3.无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。
4.无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。

HTTP请求方法

GET: 向指定的资源发出“显示”请求。使用GET方法应该只用在读取数据,而不应当被用于产生“副作用”的操作中 。
HEAD: 向服务器发出指定资源的请求。只不过服务器将不传回资源的本文部分。它的好处在于,使用这个方法可以在不必传输全部内容的情况下,就可以获取其中“关于该资源的信息”(元信息或称元数据)。
POST: 向指定资源提交数据,请求服务器进行处理(例如提交表单或者上传文件)。数据被包含在请求本文中。这个请求可能会创建新的资源或修改现有资源,或二者皆有。
PUT: 向指定资源位置上传其最新内容。
DELETE: 请求服务器删除Request-URI所标识的资源。
TRACE: 回显服务器收到的请求,主要用于测试或诊断。 [tres]
OPTIONS: 这个方法可使服务器传回该资源所支持的所有HTTP请求方法。用‘*‘来代替资源名称,向Web服务器发送OPTIONS请求,可以测试服务器功能是否正常运作。
CONNECT: HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。通常用于SSL加密服务器的链接(经由非加密的HTTP代理服务器)。

Http响应状态码:

状态代码有三位数字组成,第一个数字定义了响应的类别,共分五种类别:
1xx:指示信息--表示请求已接收,继续处理
2xx:成功--表示请求已被成功接收、理解、接受
3xx:重定向--要完成请求必须进行更进一步的操作
4xx:客户端错误--请求有语法错误或请求无法实现
5xx:服务器端错误--服务器未能实现合法的请求

常见状态码&含义
????????200 - 请求成功,已经正常处理完毕
????????301 - 请求永久重定向,转移到其它URL
????????302 - 请求临时重定向
????????304 - 请求被重定向到客户端本地缓存
????????400 - 客户端请求存在语法错误
????????401 - 客户端请求没有经过授权
????????403 - 客户端的请求被服务器拒绝,一般为客户端没有访问权限
????????404 - 客户端请求的URL在服务端不存在
????????500 - 服务端永久错误

Http协议详细内容(https://www.cnblogs.com/an-wen/p/11180076.html)

以上是关于HTTP协议概述的主要内容,如果未能解决你的问题,请参考以下文章

协议切换成功与否

HTTP协议概述

HTTP协议概述

Linux-http协议(应用层协议)-http概述-http格式-http版本-http方法-http状态码

[接口测试概述] 1.3http概述

HTTP协议概述