本文共 2323 字,大约阅读时间需要 7 分钟。
HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:WorldWide Web )服务器传输超文本到本地浏览器的传送协议。 HTTP协议工作于客户端-服务端架构为上。浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有请求。Web服务器根据接收到的请求后,向客户端发送响应信息。http请求是基于tcp请求的。 2.1简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、POST。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。 2.2灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。 2.3无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。 2.4无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。 一次HTTP操作称为一个事务,其工作过程可分为四步: 1)首先客户机与服务器需要建立连接。只要单击某个超级链接,HTTP的工作开始。 2)建立连接后,客户机发送一个请求给服务器,请求方式的格式为:统一资源标识符(URL)、协议版本号,后边是MIME信息包括请求修饰符、客户机信息和可能的内容。 3)服务器接到请求后,给予相应的响应信息,其格式为一个状态行,包括信息的协议版本号、一个成功或错误的代码,后边是MIME信息包括服务器信息、实体信息和可能的内容。 4)客户端接收服务器所返回的信息通过浏览器显示在用户的显示屏上,然后客户机与服务器断开连接。 如果在以上过程中的某一步出现错误,那么产生错误的信息将返回到客户端,有显示屏输出。对于用户来说,这些过程是由HTTP自己完成的,用户只要用鼠标点击,等待信息显示就可以了。 http协议请求头与响应头
Accept:用于高速服务器,客户机支持的数据类型 ( 告诉服务器,浏览器可以接受文本,网页图片) ; Accept-Charset:用于告诉服务器,客户机采用的编码格式 Accept-Encoding :用于告诉服务器,客户机支持的数据压缩格式 Accept-Language :客户机的语言环境( 浏览器支持的语言 ) Host :客户机通过这个头高速服务器,想访问的主机名( 浏览器要找的主机 ) If-Modified-Since :客户机通过这个头告诉服务器,资源的缓存时间( 告诉服务器我这缓存中有这个文件,该文件的缓存时间是.. ) Referer :客户机通过这个头告诉服务器,它是从哪个资源来访问服务器的( 告诉浏览器客户端来自哪里,常用于防止下载,防盗链 ) User-Agent :客户机通过这个头告诉服务器,客户机的软件环境 (告诉服务器,客户端的浏览器内核 ) Cookie :客户机通过这个头可以向服务器带数据 Connection :处理完这次请求后是否断开连接还是继续保持连接 请求方式:POST,GET,HEAD,DELETE,PUT,TRACE, get 提交,传输数据大小是2K左右(仅是IE浏览器) 当浏览者访问一个网页时,浏览者的浏览器会向网页所在服务器发出请求。当浏览器接收并显示网页前,此网页所在的服务器会返回一个包含HTTP状态码的信息头(server header)用以响应浏览器的请求。 HTTP 状态码的英文为HTTP Status Code。状态代码由三位数字组成,第一个数字定义了响应的类别,且有五种可能取值。 400 Bad Request:客户端请求有语法错误,不能被服务器所理解。 401 Unauthorized:请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用。 403 Forbidden:服务器收到请求,但是拒绝提供服务。 404 Not Found:请求资源不存在,举个例子:输入了错误的URL。 500 Internal Server Error:服务器发生不可预期的错误。 503 Server Unavailable:服务器当前不能处理客户端的请求,一段时间后可能恢复正常,举个例子:HTTP/1.1 200 OK(CRLF)。 1. 本质区别:get是从服务器上获取数据,post是向服务器传递数据。在做数据查询时,建议用get方式,而做数据增删改时,建议用post方式。 2. 参数传递区别:get是把参数数据队列加到提交表单ACTTON属性所指的URL中, 3. 数据大小区别:get传送的数据量较小,不能大于2KB。Post传送的数据较大,一般被默认为不受限制,理论上是1TB 4. 安全性区别:get安全性非常低,post安全性较高。但是执行效率却比post方法好。Post是相对安全,如果属性http协议基本没什么安全可言