一个Http请求报文由请求行、请求头、空行和请求体4个部分组成
1.请求行由请求方法、URL和HTTP协议及版本3个字段组成,它们用空格分隔,并在最后加入回车换行符(\r\n)。如"GET /login.html HTTP/1.1\r\n"
HTTP请求方法:GET, POST 和 HEAD方法、OPTIONS, PUT, DELETE, TRACE 和 CONNECT 方法。
HEAD类似GET,只不过服务端接受到HEAD请求后只返回响应头,而不会发送响应内容。当只需要查看某个页面的状态时,使用HEAD是非常高效的,因为在传输的过程中省去了页面内容。
2.请求头由"key:val"键值对组成,每行一对,每行最后加上回车换行符(\r\n)。请求头通知服务器有关于客户端请求的信息,请求头列表;
3.空行,最后一个请求头之后是一个空行(回车换行符\r\n),通知服务器以下不再有请求头
4.请求体不在GET方法中使用,而是在POST方法中使用。POST请求需要在请求头中添加Content-Type和Content-Length两个值
一个HTTP响应报文也由4个部分组成,分别是:状态行、响应头、空行、响应体
1.状态行HTTP协议及版本、状态码和状态码描述3个字段组成,它们用空格分隔,并在最后加入回车换行符(\r\n)。如"HTTP/1.1 200 OK\r\n"
2.响应头和Http请求报文中的请求头类似
3.空行,最后一个响应头之后是一个空行(回车换行符\r\n),通知服务器以下不再有响应头
4.响应体,响应的主体,即我们通过查看源代码看到的全部内容的字节字符串