专题-HTTP

                                                                          HTTP

  1. HTTPHyperText Transfer Protocol超文本传输协议)

    [1]TCP+80

    [2]状态码:

      i.1XX:表示请求已经接受,继续处理请求

      ii.2XX:请求已经完成处理,例:

        a)200请求已经正常处理完毕

      iii.3XX:表示把请求的URL定位到其它目录,例:

        b)301请求永久重定向

        c)302请求临时重定向

        d)304请求被重定向到客户端本地缓存

      iv.4xx:客户端出现错误,例:

        a)400客户端请求存在语法错误

        b)401客户端请求没有经过授权

        c)403客户端的请求被服务器拒绝,一般是没有权限

        d)404客户端请求的URL在服务器不存在

      v.5XX:服务器端出现错误,例:

        a)500服务器端发生永久错误

        b)503服务器端发生临时错误

    [3]分布式,万维网

  2.HTTPS

    通信过程:非对称加密和对称加密SSL(位于应用层和传输层之间);端口TCP+443;

  3.无状态协议

    无状态是指协议对于事务处理没有记忆能力,服务器不知道客户端是什么状态。

    由于Web服务器要面对很多浏览器的并发访问,为了提高Web服务器对并发访问的处理能力。

  4.连接(connection

    Connection: keep-alive(保持连接) 当一个网页打开完成后,客户端和服务器之间用于传输HTTP数据的TCP连接不会关闭,如果客户端再次访问这个服务器上的网页,会继续使用这一条已经建立的连接(可设定时间)。

    Connection: close 代表一个Request完成后,客户端和服务器之间用于传输HTTP数据的TCP连接会关闭,当客户端再次发送Request,需要重新建立TCP连接。

  5.请求方法

GET

向特定的资源发出请求

HEAD

类似于 GET 请求,只不过返回的响应中没有具体的内容,用于获取报头

POST

向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST 请求可能会导致新的资源的建立和/或已有资源的修改。

PUT

向指定资源位置上传其指定内容

PATCH

是对 PUT 方法的补充,用来对已知资源进行局部更新 。

DELETE

请求服务器删除Request-URL所标识的资源

CONNECT

HTTP/1.1 协议中预留给能够将连接改为管道方式的代理服务器。

OPTIONS

返回服务器针对特定资源所支持的HTTP请求方法。也可以利用向Web服务器发送'*'的请求来测试服务器的功能性。

TRACE

回显服务器收到的请求,主要用于测试或诊断。

  6.GETPOST的区别  

    [1]     位置不同:GET提交的数据会放在URL之后,以?分割URL和传输数据,参数之间以&相连,如EditPosts.aspx?name=test1&id=123456. POST方法是把提交的数据放在HTTP包的主体中。

    [2]     大小限制:GET提交的数据大小有限制,因为浏览器对URL的长度有限制,而POST方法提交的数据没有限制。

    [3]     安全问题:GET方式提交数据,会带来安全问题,比如一个登录页面,通过GET方式提交数据时,用户名和密码将出现在URL上。

  7.工作流程

    [1]     No1:浏览器(192.168.1.6)向服务器(115.239.210.36)发出连接请求。此为TCP三次握手第一步,此时从图中可以看出,为SYN,seq:X (x=0);

    [2]     No2:服务器(115.239.210.36)回应了浏览器(192.168.1.6)的请求,并要求确认,此时为:SYN,ACK,此时seq:y(y为0),ACK:x+1(为1)。此为三次握手的第二步;

    [3]     No3:浏览器(192.168.1.6)回应了服务器(115.239.210.36)的确认,连接成功。为:ACK,此时seq:x+1(为1),ACK:y+1(为1)。此为三次握手的第三步;

    [4]     No4:浏览器(192.168.1.6)发出一个页面HTTP请求;

    [5]     No5:服务器(115.239.210.36)确认;

    [6]     No6:服务器(115.239.210.36)发送数据;

    [7]     No8:客户端浏览器(192.168.1.6)确认;

    [8]     断TCP连接(如果设置keep-alive保持连接)

  8.请求信息

    请求行(请求方法/URL/协议版本)、消息报头(字段名/值)、空行(报头发送完毕)、请求正文

  9.响应消息

    状态行(协议版本/状态码/状态消息)、消息报头、空行、响应正文

  10.解决HTTP无状态的问题

    [1]     Cookies:通过Cookies,服务器就可以清楚的知道请求2和请求1来自同一个客户端

    [2]     Session(会话)ID:服务器客户端创建一个session id

    [3]     通过表单变量和QueryString保持状态,例:www.xxx.com/xxx.aspx?var1=value&var2=value2

    [4]     区别:Cookies将状态保存再在客户端,Session将状态保存在服务器端;Session更加安全不会任意读取客户信息;考虑到减轻服务器性能方面,应当使用cookies。

  11.URL

    [1]     协议://主机:[端口]/路径/[;url-params][?query-string][#anchor]例:http://www.mywebsite.com/sj/test;id=8079?name=sviergn&x=true#stuff

       12.缓存

    [1]     缓存作用:减少的带宽消耗和延迟

    [2]     客户端缓存:未修改返回304(请求被重定向到客户端本地缓存)

    [3]     WEB代理:validation(验证)或者Freshness指定缓存最长时间。

  13.  断点续传

    采用分段的原理,只请求未下载的部分

 

posted @ 2019-07-30 15:27  行走的算法  阅读(171)  评论(0编辑  收藏  举报