http协议

什么是协议

是指关于计算机通信的一整套规则,是为完成计算机网络通信而制订的规则、约定和标准。
http协议是众多通信协议中的一种,超文本传输协议 (HTTP-Hypertext transfer protocol) 是一种详细规定了浏览器和万维网服务器之间互相通信的规则 , 通过因特网传送万维网文档的数据
传送协议,简单的说就是访问网站用到的协议。Internet中所有的传输都是通过TCP/IP进行的,HTTP协议作为TCP/IP模型中应用层的协议也是如此,HTTP协议通常承载于TCP协议之上,有时也承载于TLS或SSL协议层之上,此时就是常说的HTTPS,如下所示:HTTP是一个应用层协议,由请求和响应构成,是一个标准的客户端服务器模型。HTTP同样也是一个无状态的协议。HTTP默认的端口是80,HTTPS端口是443。

特点:

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

工作流程

  比如说我们在浏览器地址栏输入www.cnblogs.com然后回车,就会显示博客园首页(前提是你要联网),在此过程,客户端到服务端发生了什么?浏览器和服务器是怎么通信的?服务器是如何处理的?处理后如何将信息反馈给浏览器然后展现给用户的?。。。这些流程主要可以归纳为四点:
  1. 客户端与服务端需要建立连接。只要单击某个超级链接,HTTP的工作开始。
  2. 浏览器首先向服务器发送HTTP请求,请求格式如下:统一资源标识符(URL)、协议版本号,后边是MIME信息包括请求修饰符、客户机信息和可能的内容。
  3. 服务器向浏览器返回HTTP响应,响应包括信息的协议版本号、一个成功或错误的代码,后边是MIME信息包括服务器信息、实体信息和可能的内容。
  4. 客户端接收服务器所返回的信息通过浏览器显示在用户的显示屏上,然后客户机与服务器断开连接。

请求和相应的格式

  1. 请求的格式:
     请求行(请求方法 路径 协议)
     头信息(格式为 key:value)

     主体信息(可选)(发送内容)
  

  2. 响应的格式:
     响应行(协议 状态码 状态文字)
     响应头信息(格式为 key:value)

     主体信息(可能没有)

在window下 通过cmd命令测试,首先进入telnet界面,win+r输入cmd回车输入telnet localhost 80 如果提示没有telnet这个命令,需要在控制面板->程序->打开或关闭Windows功能->勾选Telnet客户端->确定再重新打开,如图所示

请求方法

1. GET 请求获取Request-URI所标识的资源
2. POST 在Request-URI所标识的资源后附加新的数据,常用于提交表单。
3. HEAD 请求获取由Request-URI所标识的资源的响应消息报头
4. PUT 请求服务器存储一个资源,并用Request-URI作为其标识
5. DELETE 请求服务器删除Request-URI所标识的资源
6. TRACE 请求服务器回送收到的请求信息,主要用于测试或诊断
7. CONNECT 保留将来使用
8. OPTIONS 请求查询服务器的性能,或者查询与资源相关的选项和需求

get和post是最常用的方法,简单来说,前者用于获取数据,后者用于提交数据。

响应状态码

1. 1xx(信息类):表示接收到请求并且继续处理
2. 2xx(响应成功):表示动作被成功接收、理解和接受
3. 3xx(重定向类):为了完成指定的动作,必须接受进一步处理
4. 4xx(客户端错误类):请求包含错误语法或不能正确执行
5. 5xx(服务端错误类):服务器不能正确执行一个正确的请求

常见状态码
状态码 说明
200 服务器成功返回网页
301/2 永久 / 临时重定向
304 Not Modified– 未修改
307 重定向中保持原有的请求数据
404 请求的网页不存在
500 服务器内部错误
503 服务器暂时不可用

应用

1. 断点续传
2. 多线程下载
3. http代理
4. 虚拟主机
5. 认证、采集数据、模拟发帖等等
posted @ 2016-08-26 23:28  selfim  阅读(243)  评论(0编辑  收藏  举报