zoukankan      html  css  js  c++  java
  • 万维网WWW

      1、统一资源定位符URL

      统一资源定位符URL是用来表示从互联网上得到的资源位置和访问这些资源的方法。

      URL的一般格式由以下四个部分组成:

                  <协议>://<主机>:<端口>/<路径>

      协议:在万维网最常用的协议主要由两个:http(超文本传输协议)、ftp(文件传输协议)

      主机:是指主机的域名

      端口:协议端口

      路径:要访问的文件的路径

      2、使用HTTP的URL

      这在我们的日常生活中非常常见,HTTP的URL一般协议:

                    http://<主机>:<端口>/<路径>

      主机:是指主机的域名

      端口:HTTP协议的端口默认是80

      路径:要访问的文件的路径

      URL的协议和主机部分不区分大小写,但是路径是区分大小写的。

      3、HTTP:

      HTTP协议定义Web客户端如何从Web服务器请求Web页面,以及服务器如何把Web页面传送给客户端。HTTP协议采用了请求/响应模型。客户端向服务器发送一个请求报文,请求报文包含请求的方法、URL、协议版本、请求头部和请求数据。服务器以一个状态行作为响应,响应的内容包括协议的版本、成功或者错误代码、服务器信息、响应头部和响应数据。

      以下是 HTTP 请求/响应的步骤:

      1)客户端连接到Web服务器

      一个HTTP客户端,通常是浏览器,与Web服务器的HTTP端口(默认为80)建立一个TCP套接字连接。

      2)发送HTTP请求

      通过TCP套接字,客户端向Web服务器发送一个文本的请求报文,一个请求报文由请求行、请求头部、空行和请求数据4部分组成。

      3)服务器接受请求并返回HTTP响应

      Web服务器解析请求,定位请求资源。服务器将资源复本写到TCP套接字,由客户端读取。一个响应由状态行、响应头部、空行和响应数据4部分组成。

      4)释放连接TCP连接

      若connection 模式为close,则服务器主动关闭TCP连接,客户端被动关闭连接,释放TCP连接;若connection 模式为keepalive,则该连接会保持一段时间,在该时间内可以继续接收请求;

      4、HTTP报文结构

      客户端发送一个HTTP请求到服务器的请求消息包括以下格式:

      请求行(request line)、请求头部(header)、空行和请求数据四个部分组成。

      请求行以一个方法符号开头,以空格分开,后面跟着请求的URI和协议的版本。

          第一部分:请求行,用来说明请求类型,要访问的资源以及所使用的HTTP版本.

      请求方法命令:

      GET     请求指定的页面信息,并返回实体主体。
      HEAD     类似于get请求,只不过返回的响应中没有具体的内容,用于获取报头
      POST     向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改。
      PUT     从客户端向服务器传送的数据取代指定的文档的内容。
      DELETE      请求服务器删除指定的页面。
      CONNECT     HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。
      OPTIONS     允许客户端查看服务器的性能。
      TRACE     回显服务器收到的请求,主要用于测试或诊断。

      第二部分:请求头部,紧接着请求行(即第一行)之后的部分,用来说明服务器要使用的附加信息

      从第二行起为请求头部,HOST将指出请求的目的地.User-Agent,服务器端和客户端脚本都能访问它,它是浏览器类型检测逻辑的重要基础.该信息由你的浏览器来定义,并且在每个请求中自动发送等等

      第三部分:空行,请求头部后面的空行是必须的

      即使第四部分的请求数据为空,也必须有空行。

      第四部分:请求数据也叫主体,可以添加任意的其他数据。

      2)响应报文

      HTTP响应也由四个部分组成,分别是:状态行、消息报头、空行和响应正文。

      第一部分:状态行,由HTTP协议版本号, 状态码, 状态消息 三部分组成。

      第一行为状态行,(HTTP/1.1)表明HTTP版本为1.1版本,状态码为200,状态消息为(ok)

      第二部分:消息报头,用来说明客户端要使用的一些附加信息

      第二行和第三行为消息报头,
      Date:生成响应的日期和时间;Content-Type:指定了MIME类型的HTML(text/html),编码类型是UTF-8

      第三部分:空行,消息报头后面的空行是必须的

       第四部分:响应正文,服务器返回给客户端的文本信息。

      空行后面的html部分为响应正文。

      HTTP之状态码

      状态代码有三位数字组成,第一个数字定义了响应的类别,共分五种类别:

      1xx:指示信息--表示请求已接收,继续处理

      2xx:成功--表示请求已被成功接收、理解、接受

      3xx:重定向--要完成请求必须进行更进一步的操作

      4xx:客户端错误--请求有语法错误或请求无法实现

      5xx:服务器端错误--服务器未能实现合法的请求

      常见状态码:

      200 OK                        //客户端请求成功
      400 Bad Request               //客户端请求有语法错误,不能被服务器所理解
      401 Unauthorized              //请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用 
      403 Forbidden                 //服务器收到请求,但是拒绝提供服务
      404 Not Found                 //请求资源不存在,eg:输入了错误的URL
      500 Internal Server Error     //服务器发生不可预期的错误
      503 Server Unavailable        //服务器当前不能处理客户端的请求,一段时间后可能恢复正常
    
    
    
  • 相关阅读:
    Chrome Extension 扩展程序 小白入门
    gulp 打包报错:ReferenceError: internalBinding is not defined
    error in static/js/xxx.js from UglifyJs Unpected token: punc() [static/js/xxx.js]
    ES6-
    浏览器的渲染原理(转载)
    nodeType、nodeName和nodeValue
    浏览器 HTTP 协议缓存机制详解
    JS函数的上下文环境
    ready和onload的区别
    自定义事件
  • 原文地址:https://www.cnblogs.com/PIRATE-JFZHOU/p/7995400.html
Copyright © 2011-2022 走看看