linux网络中http协议的首部信息,以及http的请求方法最全总结

HTTP的首部信息:
客户端和服务端在利用HTTP协议进行通信时,客户端要发送请求信息,服务端要发送响应信息,它们的报文一般由三部分组成,报文首部,空行,报文主体,报文主体是我们要发送的请求信息的内容或是响应信息回复给我们所需要的数据,空行的作用就是用来将报文首部和报文主体隔开,报文首部包含着很多信息,但它并不是我们要回复给客户的文件数据,就是对回复的数据文件作一个说明或者是回复一些服务端想要客户端知道的一些在传输数据时的注意事项和传输内容时所要用到的一些特殊的数据,HTTP的请求信息报文首部和HTTP的响应报文首部是不同的,因为它们各自代表着客户端和服务端,所以需求不同,报文首部也就不同了,请求信息时的报文首部由,请求方法,URI,HTTP版本和HTTP首部字段组成(一般客户端在请求信息时,在首部前面还会有一个请求行,它位于请求信息的最前面,包含着请求方法,URL,协议版本号等信息),而响应信息的报请首部由,HTTP版本,状态码和HTTP首部字段组成
可以看出,不论客户端还服务端在报文首部中都有HTTP首部字段,而HTTP的首部字段有以下四种,1、通用首部字段,请求报文和响应报文都会使用的首部;2、请求首部字段,从客户端向服务端发送请求报文时使用的首部,补充了请求的附加内容、客户端信息、响应内容相关优先级等信息;3、响应首部字段,从服务端向客户端响应时使用的首部,补充了附加内容,也会要求客户端附加额外的内容信息;4、实体首部字段,针对请求报文和响应报文的实体而使用的首部
HTTP的请求方法:
客户端在向服务端请求数据时,需要告诉服务端请求的方式是什么,不同的请求方式服务端做出的操作也就不同,HTTP1.1中有八种请求方法,GET请求、POST请求、PUT请求、HEAD请求、DELETE请求、OPTIONS请求、TRACE请求、CONNECT请求,GET请求,是用来请求指定的页面信息,并返回实体主体,POST请求,是用来向服务端指定的资源文件提交数据,让服务端进行处理的请求,让服务端处理的数据,包含在请求体中,它可能会让服务端修改之前的资源,POST请求也可以用来请求指定的页面信息,它和GET请求的区别是,GET请求是将我们输入的内容拼接到URL上,一般情况下就是“?”后面的字符串就是我们输入的信息,也就是我们想要获取的资源,因为GET是将输入的内容拼接到了URL上,所以它的内容必须经过编码成为ASCII码,因为URL上特殊字符有特殊的含义,所以有些字符不能正常被转换为ASCII码,而要根据规则转换为其它的字符,像这种字符通常在它前面有“%”的标识,而POST请求则不是将输入的内容拼接到URL上,是以HTTP包的消息形式发送到服务端,然后让服务端进行处理,因为GET请求是直接将输入内容拼接在URL上,所以请求方式比较简单,但是不会很安全,可以直接从URL上获取我们输入的信息,而POST相比较而言,因为是让HTTP以消息的形式发送给服务端,所以不是很简单,但是比GET更安全
还有就是GET请求通常有长度限制,一般情况下不能超过1024KB,而POST则没有长度限制,因为GET是直接将输入内容拼接在URL后面的,所以GET的长度会有局限性,一般这个局限性取决于使用的浏览器,不过HTTP中并没有对GET请求的长度做出限制,而POST请求则没有长度限制,原因也很简单,POST是以HTTP包的消息形式发送给服务端的,所以不会局限于浏览器所要求的URL长度
GET通常用于获取资源,POST通常用于提交资源,因为GET是直接将输入内容拼接在URL后面的,所以GET请求是有长度限制的,而如果用GET来提交数据的话,可能会造成数据溢出,导致提交错误,因为GET提交的数据不能太长,所以GET通常用于获取数据,而POST因为没有数据长度的限制,所以可以用来提交数据(提交数据是指将客户端的数据传给服务端,然后服务会根据这个数据来修改资源,就像我们在别人博客中评论了一样,这时这个博客的页面数据就会有所改变)
GET请求会缓存数据,而POST则不会缓存数据,原因还是GET请求是将数据拼接在URL后面的,所以可以直接缓存,而POST不会和URL进行拼接,所以如果想缓存POST的数据,也是缓存不到的;另外GET请求能够保存书签和保存历史浏览记录也是这个原因
PUT请求,PUT请求是用来是用来更新资源的,也就是它会用客户端传过来的资源,来替换服务器里的资源,它和POST请求的区别是,PUT请求如果要替换服务器的资源,那就必须是在修改完资源后,将资源完整的提交到服务端,而POST请求在更新资源时,是可以部分资源更新的,也就是可以只提交自己修改的内容
HEAD请求,HEAD的请求方法和GET相同,只不过它不需要服务端返回报文主体,是用来获取服务端报头信息的
DELETE请求,DELETE的请求方法是用来删除指定的资源的,也就是它会将自己要删除的资源发送给服务端,请求服务端删除掉服务器上的这份资源
OPTIONS请求,OPTIONS的请求方法是用来查询,针对服务端的资源可使用的请求方法有哪些的,也就是客户端在请求数据时,并不知道服务端允许哪些方法,可以用这个请求先探测一下
TRACE请求,TRACE的请求方法是用来追踪路径的,它是让之前服务端请求通信环回给客户端的方法,在发送请求时在首部字段填入数值,每经过一个服务器这个值就减1,直到变为0,最后接收请求的服务端返回200 OK的响应,因为在访问一个服务端时,中间可能经过代理进行中转,所以这个请求通常用来测试和诊断,客户端发送出的数据被怎样进行修改
CONNECT请求,CONNECT的请求方法是用来建立隧道的,因为在访问一个服务端的服务器时,中间可能要经过很多代理,这时在传输数据时可能不安全,所以CONNECT请求要求在和代理进行数据发送时建立隧道,主要使用SSL来进行安全的安全的传输

你可能感兴趣的:(linux网络中http协议的首部信息,以及http的请求方法最全总结)