1.简介
之前的常用关键字中介绍了content以及许多修饰它的关键字,除此之外,http协议中还有一些修饰content的关键字,也是由于http协议使用量较大,关键字较多,因此单独拿出来学习。参考:HTTP协议-维基百科。
2.Request和Response
http协议包括了http request和http response数据包。通常,由HTTP客户端发起一个request请求,创建一个到服务器指定端口(默认是80端口)的TCP连接。HTTP服务器则在那个端口监听客户端的请求。一旦收到请求,服务器会向客户端返回一个状态,比如”HTTP/1.1 200 OK”,以及返回的内容,如请求的文件、错误消息、或者其它信息。
2.1 http request
http request请求包括请求行、请求头、空行和内容。一个普通的request请求如下:
红框部分是请求行,GET表示http method,除了GET还有POST,PUT,HEAD等;后面的/webshell/c99_locus7s.php则是http uri;HTTP/1.1则是版本,可以是0.9、1.0和1.1。绿框部分是请求头,也就是http head,除了HOST字段必须要有,其余字段都是可选的。蓝框部分是空行,只允许有\r\n。由于这个包是GET方法,因此没有内容,如果是POST等方法后面会跟上内容。
2.2 http response
http response应答包括应答行,头部,空行和内容,整体结构和request差不多,下图是针对上节request的应答包:
红框部分,HTTP/1.1是http版本,后面的200是返回的状态码,OK是状态信息。绿框部分是http header,蓝框部分则是返回的html页面,也就是结果。
3.HTTP关键字
3.1 http_method
http_method是content的修饰符,表示其所修饰的content只匹配http method部分。http可以使用的方法包括:GET, POST, PUT, HEAD, DELETE, TRACE, OPTIONS, CONNECT和PATCH。下面这个例子匹配GET方法,无论是否加http_method都能匹配: