A Survey on Detection and Defense of Application Layer DDoS Attacks