美文网首页
HTTP协议

HTTP协议

作者: 叫我小码哥 | 来源:发表于2018-02-25 14:47 被阅读0次

 HTTP协议又叫超文本传输协议,该协议是工作在应用层。

HTTP的作用

         当两台计算机使用HTTP协议通信时,一方必定为客户端,另一方必定为服务器端。而HTTP却能明确的区分出那方是客户端,那方是服务器端。HTTP协议规定请求是从客户端发出,服务器响应请求返回(所以TCP的三次握手是从客户端先发起请求的)。

        一个请求报文是由5部分组成。他们分别是URL,协议版本号,请求首部字段和实体内容组成。

        一个响应报文是由5部分构成。他们分别是协议版本,状态码,状态码的原因短语,响应首部字段和主体。

HTTP报文分为请求报文和响应报文。

在客户端发起的HTTP请求叫做请求报文,请求报文的结构为,

在服务器端的响应报文,响应报文的结构为,

HTTP协议的特点?

HTTP是无状态的,也就是说HTTP协议自身不会对请求和响应之间的状态进行保存。每当有新的请求就会产生新的响应,协议本身并不保留之前的一切请求。

HTTP的方法都有哪些?

get(获取资源),post(传输实体主体),put(传输文件),head(获得报文首部),delete(删除文件),trace(追踪路径)

    get和post的区别

1.最直观的区别就是GET把参数包含在URL中,POST通过request body传递参数。

       2.本质是一样的

              http的底层是tcp,tcp的作用传输数据 ,get是把传输的数据放到url中方便记录。

        post方式是把数据放到requestbody 中

        3.url中的数据大多数浏览器规定为2k,大多数的服务器最多处理64k大小的数据,超过的部分,恕不处理。

        4.Get方式会把 httpheader 和 data 一并发过去,服务器响应200 返回数据。

        Post方式浏览器先发送header 服务器响应100 浏览器在发送data 返回数据。


常见返回结果的HTTP状态码

    200  表示客户端发送的请求被服务器端正常的处理。

    204  表示服务器连接的请求成功处理,但在返回的报文中不含实体的主体部分。

            返回204,浏览器页面不发生跟新。

    206  表示客户端进行了范围请求,而服务器执行了这部分的GET请求。

    301 永久性重定向,该状态码表示请求资源已被分配了新的URL,以后使用资源时现在的URL   

    302  临时性重定向,表示请求的资源被分配了新的URL,希望用户本次使用新的URL。

    303  该状态码表示请求的资源存在一个新的URL,应使用GET方法定向获取请求资源。

    304  该状态码返回时,不包含响应主体部分。

    307   临时重定向,该状态码和302的状态码含义相同,而307会准照浏览器的标准,不会从POST装换为GET。   

    400 改状态码表示请求中存在语法错误。

    401 改状态码表示发送的请求需要通过HTTP认证的认证信息。另外若之前进行过1次请求, 则表示用户认证失败。

    403 该状态码表示请求的资源被服务器拒绝了。

    404 该状态码表示服务器上无法找到请求资源。

    500 该状态码表示服务器在执行请求时发生了错误。

    503 该状态码表示服务器暂时处于超负载或者停机维护,现在无法处理请求。

HTTP1.0和HTTP1.1的区别

        在HTTP1.0版本中每进行一次HTTP通信就要建立和断开一次TCP链接。在使用浏览器包含多张图片的HTML页面时,在发生请求该HTML资源时会增加通信量的开销。而HTTP1.1版本采用了持久链接。建立好TCP链接可以进行多次HTTP请求,持久链接好处减少了重复建立和开销造成额外资源的浪费。

相关文章

网友评论

      本文标题:HTTP协议

      本文链接:https://www.haomeiwen.com/subject/gewlxftx.html