HTTP介绍

2019-07-16  本文已影响0人  Somebody_8ccb

HTTP是一个属于应用层的面向对象的协议,超文本传输协议

主要特点

  1.支持客户/服务器模式

  2.简单快速:客户向服务器请求服务时,只需传送请求方法和路径。

  3.灵活:HTTP允许传输任意类型的数据对象,传输类型由Content-Type标记

  4.无连接:无连接的含义是限制每次连接只处理一个请求

  5.无状态:协议对于事务处理没有记忆能力。

HTTP格式

 http://host[:post][abs_path]

  HTTP表示要通过HTTP协议来定位网络资源;

  host表示合法的Internet主机域名或者IP地址;

  port指定一个端口号,为空则使用缺省端口80;

  abs_path指定请求资源的URI;

  如果URL中没有给出abs_path,那么当它作为请求URI时,必须以“/”的形式给出,这个通常是浏览器自动完成的。

如:http://oa.idaddy.cn:80/

HTTP请求

http请求由四部分组成,分别是:请求行、请求头、空行、其他消息体

请求行--①    请求头--②    空行--③  其他消息体--④

请求行:请求方法+URI+协议/版本

HTTP协议的请求方法

  GET--从指定的资源请求数据

  POST--向指定资源提交数据,请求服务器进行处理,如表单数据提交、文件上传等,请求数据会被包含在请求体中

  HEAD--与GET方法一样,都是向服务器发出指定资源的请求。但只有HTTP报头,没有响应体

  PUT--向指定资源位置上传其最新内容

  DELETE--请求服务器删除Request-URI所标识的资源

  OPTIONS--使服务器传回该资源所支持的所有HTTP请求方法

  TRACE—回显服务器收到的请求,主要用于测试或诊断

  CONNECT–HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器

常用方法GET和POST

Get--使用GET方法应该只用在读取数据,但有时候也会被用于提交数据

Post–向指定的资源提交要被处理的数据

GET和POST对比:

HTTP响应

由四部分组成,分别是:状态行、响应头信息、空行、响应正文

状态行--①    响应头信息--②  空行--③  响应正文--④

状态行:协议/协议版本+状态码+状态描述

状态码

  状态代码由三位数字组成,第一个数字定义了响应的类别,且有五种可能取值。

  1xx:指示信息--表示请求已接收,继续处理

  2xx:成功--表示请求已被成功接收、理解、接受

  3xx:重定向--要完成请求必须进行更进一步的操作

  4xx:客户端错误--请求有语法错误或请求无法实现

  5xx:服务器端错误–服务器未能实现合法的请求

常见状态代码、状态描述、说明:

  200 OK  //客户端请求成功

  400 Bad Request  //客户端请求有语法错误,不能被服务器所理解

  401 Unauthorized //当前请求需要用户验证 

  403 Forbidden  //服务器收到请求,但是拒绝提供服务

  404 Not Found  //请求资源不存在

  500 Internal Server Error //服务器发生不可预期的错误

  502 Bad Gateway //从上游服务器接收到无效的响应

  503 Server Unavailable  //服务器当前不能处理客户端的请求,一段时间后可能恢复正常

HTTP请求流程

HTTP不安全性

     Http的通信是明文的,存在被窃听的风险;

     无法确认通信双方身份,有可能会被人伪造;

     无法验证报文的完整性,无法验证是否被篡改过;

     如:HTTP劫持

     网址被无辜跳转,多了推广的尾巴;

     页面出现额外的广告;

上一篇 下一篇

猜你喜欢

热点阅读