有关HTTP协议、TCP和UDP协议整理

1:超文本传送协议

1: HTTP协议定义了浏览器怎么向服务器请求文档,以及怎么把文档传送给浏览器。从层级的角度看,HTTP协议是面向事务的应用层协议。HTTP报文通常使用TCP连接传送。

2:HTTP使用了面向连接的TCP作为传输层协议,保证了数据的可靠传输。

        HTTP协议是无连接的,通信的双发在交换HTTP报文之前不需要先建立HTTP连接

        HTTP协议是无状态的,服务器并不记得曾经访问过的客户,和访问次数。这种特性简化了服务器的设计和支持大量并发的HTTP请求

        HTTP在TCP的三次握手的前两部分完成后,客户端就把HTTP请求报文作为第三个报文的数据发送给服务器。

3:HTTP/1.0和HTTP/1.1

        HTTP/1.0:使用的非持续连接,这会使服务器的负担很重。

        HTTP/1.1:使用了持续连接,有两种工作方式,1:流水线方式---可以多请求多响应。2:非流水线方式--一次一个请求

4:HTTP报文

        HTTP报文--请求报文和响应报文,HTTP是面向文本的。都由三部分组成:开始行、首部行、实体主体。

        请求报文--请求行、首部行、实体主体

        HTTP请求的细节——请求行

        请求行中的GET 称之为请求方式,请求方式有:

         POST、 GET 、 HEAD 、 OPTIONS 、 DELETE 、 TRACE 、 PUT

            常用的有: GET 、  POST

            用户如没有设置,默认情况下浏览器向服务器发送的都是get 请求,例如在浏览器直接输地址访问,点超链接访问等都是         get ,用户如想把请求方式改为 post ,可通过更改表单的提交方式实现。

        不管POST 或 GET ,都用于向服务器请求某个 WEB 资源,这两种方式的区别主要表现在数据传递上:

        如请求方式为GET 方式,则可以在请求的 URL 地址后以 ? 的形式带上交给服务器的数据,多个数据之间以 & 进行分隔,例如:

        GET /mail/1.html?name=abc&password=xyz HTTP/1.1

        GET方式的特点:在 URL 地址后附带的参数是有限制的,其数据容量通常不能超过 1K 。

        如请求方式为POST 方式,则可以在请求的实体内容中向服务器发送数据, Post 方式的特点:传送的数据量无限制。


        HTTP请求的细节——首部行

        用于HTTP 请求中的常用头

        Accept: text/html,image/*     //允许的请求文档类型

        Accept-Charset: ISO-8859-1

        Accept-Encoding: gzip,compress

        Accept-Language: en-us,zh-cn //表示用户希望优先得到中文版的请求文档

        Host: www.it315.org:80//主机域名及端口号

        If-Modified-Since: Fri, 11 Dec 2015 18:23:51 GMT

        Referer: http://www.it315.org/index.jsp

        User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0)

        Cookie

        Connection: close/Keep-Alive   

        Date: Fri, 11 Dec 2015 18:23:51 GMT
        

        HTTP响应的细节——状态行

        状态行

        格式: HTTP 版本号 状态码 原因叙述 <CRLF>

        举例:HTTP/1.1 200 OK

        状态码用于表示服务器对请求的处理结果,它是一个三位的十进制数。响应状态码分为5 类,如下所示:


        响应状态码à典型情况


        200(正常) 

        表示一切正常,返回的是正常请求结果。

        302/307(临时重定向)

        指出被请求的文档已被临时移动到别处,此文档的新的URL 在 Location 响应头中给出。

        304(未修改)

        表示客户机缓存的版本是最新的,客户机应该继续使用它。

        403(禁止) 

        服务器理解客户端请求,但拒绝处理它。通常由于服务器上文件或目录的权限设置所致。 

        404(找不到) 

        服务器上不存在客户机所请求的资源。

        500(内部服务器错误) 

        服务器端的CGI 、 ASP 、 JSP 等程序发生错误。


        HTTP响应细节——常用响应头


        HTTP请求中的常用响应头

        Location: http://www.it315.org/index.jsp //重定向URL

        Server:apache tomcat

        Content-Encoding: gzip 

        Content-Length: 80 

        Content-Language: zh-cn 

        Content-Type: text/html; charset=GB2312 

        Last-Modified: Fri, 11 Dec 2015 18:23:51 GMT

        Refresh: 1;url=http://www.it315.org

        Content-Disposition: attachment; filename=aaa.zip

        Transfer-Encoding: chunked  

        Set-Cookie:SS=Q0=5Lb_nQ; path=/search

        ETag: W/"7777-1242234904000"

        Expires: -1

        Cache-Control: no-cache  

        Pragma: no-cache   

        Connection: close/Keep-Alive   

        Date: Fri, 11 Dec 2015 18:23:51 GMT


传输层协议:TCP协议和UDP协议

    TCP建立连接/三次握手
    
图片来源:点击打开链接
四次挥手:


用户数据报协议UDP

        UDP:提供了不面向连接通信,适合一次传输小量数据,可靠性由应用层负责


猜你喜欢

转载自blog.csdn.net/qq_33182756/article/details/79800203