美文网首页
Http协议

Http协议

作者: 沈Robbie | 来源:发表于2016-11-06 00:28 被阅读0次

什么是Http协议

是一种可靠的可以传送文档,声音,图像的一种与服务器交互的方式,它处于应用层。

怎么工作

它是建立在TCP的协议之上的。

  1. 首先,客户机与服务器要建立连接。
  2. 客户机发送请求,格式为统一资源定位符(URL)、协议版本号、MIME信息包括请求修饰符、客户机信息和可能的内容。
  3. 服务器接到请求之后,给予相应的响应,格式为一个状态行,包括信息协议的版本号,成功或错误的代码,MIME信息包括服务器信息,实体信息和可能的内容。
  4. 返回的信息到达客户机后,断开连接。

URL==统一资源定位符==网页地址

由三部分组成:

  1. 协议

TCP

  • SYN(Synchronous)是TCP建立连接时,由客户端发给服务端的握手信号。
  • ACK(Acknowledgement) 即确认字符,服务器在接收到SYN信息后返回SYN+ACK给客户端,客户端再以ACK响应,这样才建立了可靠的TCP连接。

请求方法URI协议/版本

请求的第一行是“方法URL议/版本”:GET/sample.jsp HTTP/1.1
以上代码中“GET”代表请求方法,“/sample.jsp”表示URI,“HTTP/1.1代表协议和协议的版本。
根据HTTP标准,HTTP请求可以使用多种请求方法。例如:HTTP1.1支持7种请求方法:GET、POST、HEAD、OPTIONS、PUT、DELETE和TARCE。在Internet应用中,最常用的方法是GET和POST。
URL完整地指定了要访问的网络资源,通常只要给出相对于服务器的根目录的相对目录即可,因此总是以“/”开头,最后,协议版本声明了通信过程中使用HTTP的版本。

请求头

请求头包含许多有关的客户端环境和请求正文的有用信息。例如,请求头可以声明浏览器所用的语言,请求正文的长度等。
Accept:image/gif.image/jpeg./
Accept-Language:zh-cn
Connection:Keep-Alive
Host:localhost
User-Agent:Mozila/4.0(compatible:MSIE5.01:Windows NT5.0)
Accept-Encoding:gzip,deflate.

GET

GET方法是默认的HTTP请求方法,我们日常用GET方法来提交表单数据,然而用GET方法提交的表单数据只经过了简单的编码,同时它将作为URL的一部分向Web服务器发送,因此,如果使用GET方法来提交表单数据就存在着安全隐患上。例如
Http://127.0.0.1/login.jsp?Name=zhangshi&Age=30&Submit=%cc%E+%BD%BB
从上面的URL请求中,很容易就可以辩认出表单提交的内容。(?之后的内容)另外由于GET方法提交的数据是作为URL请求的一部分所以提交的数据量不能太大

POST

POST方法是GET方法的一个替代方法,它主要是向Web服务器提交表单数据,尤其是大批量的数据。POST方法克服了GET方法的一些缺点。通过POST方法提交表单数据时,数据不是作为URL请求的一部分而是作为标准数据传送给Web服务器,这就克服了GET方法中的信息无法保密和数据量太小的缺点。因此,出于安全的考虑以及对用户隐私的尊重,通常表单提交时采用POST方法。

响应码

2xx:成功
200:OK,请求成功
201:OK,新的资源建立(post命令)
202:请求被接受,但处理未完成
204:OK,但没有内容返回


3xx:重定向:需要用户代理执行更多的动作
301:Moved Permanently永久转移(所请求的资源已被指派为新的固定URL)
302:Found 暂时转移(所请求的资源临时位于另外的URL)
304:文档没有修改(条件GET)
307:Temporary Redirect(临时重定向)


4xx:客户差错
400:Bad Request 请求错误
401:Unauthorized 未认证(该请求要求用户认证)
403:Forbidden 不明原因的禁止
404:Not Found 未找到


5xx:服务器差错
500:Internal Server Error(服务器错误)
501:没有实现
502:错误的网关(网关或上游服务器来的无效响应)
503:Service Unavailable(一般是访问人数过多)

HTTP1.0和1.1

  • 1.0
    每次请求都要建立新的TCP连接
  • 1.1
    • 请求可以建立在上次的TCP连接中,减少三次握手,提高效率
    • 在Request的消息头新增加了Host域
    • 增加了许多Request方法OPTIONS、PUT、DELETE、CONNECT、TARCE

相关文章

网友评论

      本文标题:Http协议

      本文链接:https://www.haomeiwen.com/subject/siuguttx.html