HTTP协议是一个应用层的适用于分布式超媒体的协议,HTTP协议的主要特点有:
1.支持客户端/服务器(C/S)模式
2.无连接。客户端发出一次请求,服务器完成一次响应之后即断开连接。这种特性有利于安全,但是不适合开发实时性较强的网络应用,近年提出的Web socket、WebRTC等协议便是为了解决这一问题。
3.无状态。每一次HTTP请求与之前的HTTP请求没有任何关系,即使是同一台主机上的同一个进程发起的请求。这样服务器的后续处理需要用到前面的信息,则必须重传,这样导致对网络带宽的不必要的占用。
4.简单。客户端向服务器发起的请求中只需要包含请求方法和请求路径即可。
5.灵活。HTTP协议可以传送任何类型的数据。
HTTP请求
HTTP请求由请求行、消息报头、请求正文组成。请求行由:请求方法 URL HTTP版本 CRLF组成。HTTP请求有:GET、POST、HEAD、PUT、CONNECT、TRACE、DELETE、OPTIONS等方法,但是其中GET、POST和HEAD方法是最常用的。
1.GET方法。GET方法是最常用的方法,比如在浏览器中输入URL时,浏览器就是采用GET方法从服务器获取指定的资源
2.POST方法。POST方法一般会附加一部分数据,以让该服务器接收一些数据,常用来提交表单。
3.HEAD方法。HEAD方法和GET方法基本一致,只不过服务器在response时只返回包含所请求的url资源的整体信息的头部而不返回全部资源,一般用来做爬虫时测试url的有效性及是否更新,可以加快获取的速度。
HTTP响应
HTTP响应由状态行、响应报头、响应正文组成。状态行由:HTTP版本号 状态代码 状态原因 CRLF四部分组成,状态代码有2XX代表成功、4XX代表客户端错误,各种代码代表的意义可以查询相应的文档来获取。
HTTP报头
HTTP的请求和响应报头共有有四种:普通报头、请求报头、响应报头、实体报头。