The 26-year-old was a free agent after being released by the Hammers at the end of last season.
Henderson has become head coach Bob Peeters's eighth signing of the summer.
"I'm very excited and can't wait to get started," Henderson told Charlton's official website.
"I'm delighted to get it done. It was a pretty sharp move and I'm very happy to be here."
Henderson has also played for Portsmouth, Ipswich Town and Yeovil Town during his career.