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协议概述的主要内容,如果未能解决你的问题,请参考以下文章