zoukankan      html  css  js  c++  java
  • http协议了解

      在web应用中,服务器把网页的HTML代码发送给浏览器,让浏览器显示出来,浏览器和服务器之间的传输协议就是HTTP协议。HTTP是在网络上传输HTML的协议,用于浏览器和服务器之间的通信。

      一个网页打开的流程是浏览器读取服务器发送的HTML源码后,解析HTML,显示页面,然后根据HTML中的各个链接,再发送请求到服务器,拿到相应图片视频js脚本等资源,最后显示出一个完整的页面。

    http请求的流程:

    1.浏览器向服务器发送http请求

    方法:有post(请求支援并附带数据,可能修改服务器上的资源)get(仅请求资源)PUT(增加数据)DELETE(删除数据);

    路径:/full/url/path;

    域名:由host指定,如   host:www.sina.com.cn

    当请求方法为post时,请求还包括一个body,包含用户数据。

    2.服务器向浏览器返回HTTP相应

    响应代码:

    200:成功

    3XX:重定向

    4XX:客户端发送的请求有错误

    5XX:服务器端处理时发生了错误

    响应类型:由Content-Type指定。

    通常服务器返回的HTTP响应会携带内容,即一个body,如HTML源码。

    3.浏览器继续向服务器发送请求,就继续1和2的步骤。

    注意:HTTP协议采用了简单的请求-响应的模式,一个HTTP请求只处理一个资源。一个网页中的请求可以是不同的服务器,一个站点可以链接到其他站点。比如图片可以链接于不同的网站。

    HTTP格式

    HTTP请求和响应都遵循相同的格式,包含Header和Body两个部分。Body可选。

    HTTP GET请求格式:(Header一行一个,换行符   )

    GET /path HTTP/1.1    //例:GET /books/?sex=man&name=professional HTTP/1.1

    Header1:Value1

    Header2:Value2

    Header3:Value3   //GET可提交的数据量受到URL长度的限制,这个限制不是HTTP协议限制的,是浏览器及服务器限制的。

    HTTP POST请求格式:(连续两个换行符时,header部分结束,后面全部为body)

    POST /path HTTP/1.1

    Header1:Value1

    Header2:Value2

    Header3:Value3

    body data……      //HTTP协议对POST的大小没有限制,但处于安全考虑,服务器会在实现时做一定限制。

    HTTP响应格式:

    200 ok

    Header1:Value1

    Header2:Value2

    Header3:Value3

    body data……

    注意:body的数据类型由Content-Type来决定。网页时,body是文本,图片时,body是二进制数据。Content-Encoding存在时,body数据被压缩,常见格式是gzip,此时需解压缩。

    条件GET使用的时机:

    在客户端之前已经访问过某网站,并打算再次访问该网站的时候。

    当再次访问这个网站时候,浏览器向服务器发送请求询问是否在上次询问后更改了页面,服务器根据请求判断响应文件是否有更新,更新了则返回正常响应,没有更新则则返回304 Not Modefied响应,告诉浏览器使用已缓存的上次获取文件。

    (本文参考地址:http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/001386832653051fd44e44e4f9e4ed08f3e5a5ab550358d000)

  • 相关阅读:
    Christmas Jump(k_push)
    cloudyarn(k_push)
    Eye sketch
    Candy Treasure Box
    Active Ball
    Lotus words
    Super Fish
    [POJ2436] Disease Management
    [bzoj3376] Cube Stacking 方块游戏
    [POJ3009] Curling 2.0
  • 原文地址:https://www.cnblogs.com/lionisnotkitty/p/5978050.html
Copyright © 2011-2022 走看看