zoukankan      html  css  js  c++  java
  • 浅谈HTTP请求与响应

     

    HTTP协议用于客户端和服务器之间的通信,请求访问的一段是客户端,提供资源响应的一段是服务器端。

    HTTP通信是采用请求应答的方式来进行的,客户端发出请求,服务器响应。如果没有客户端的请求,服务器端是不进行任何响应的。HTTP通信机制是在一次完整的HTTP通信过程中,Web浏览器与Web服务器之间将完成下列4个步骤:

    (1)建立TCP连接

    在HTTP工作开始之前,Web浏览器首先要通过网络与Web服务器建立连接,该连接是通过TCP /IP完成,这是在网络层进行的。HTTP是比TCP更高层次的应用层协议,根据规则,只有低层协议建立之后才能,才能进行更层协议的连接,因此,首先要建立TCP连接,一般TCP连接的端口号是80。

    (2)Web浏览器向Web服务器发送请求命令

    一旦建立了TCP连接,Web浏览器就会向Web服务器发送请求命令,如下所示,其中GET表示请求服务的类型,随后的字符串/index.html指明了请求访问的资源对象,也叫做请求URI。最后的HTTP/1.1表示HTTP的版本号。综合来看,请求报文包括请求方法、请求URI、协议版本、可选的请求首部字段和内容实体。

    GET /index.htm HTTP/1.1

    Host:hackr.jp

    (3)Web服务器应答

    客户机向服务器发出请求后,服务器会客户机回送应答,如下所示。开头的HTTP/1.1表示服务器对应的版本号,接下来的200 OK表示请求处理的处理结果的状态码和原因短语。接下来是响应首部字段。

    HTTP/1.1 200 OK

    Date:Tue ,10 July 2016 08:33:16 GMT

    Content-Length:362

    Conten-Type:text/html

    <html>

    ……

    (4)Web服务器关闭TCP连接

    一般情况下,一旦Web服务器向浏览器发送了请求数据,它就要关闭TCP连接,然后如果浏览器或者服务器在其头信息加入了这行代码

    Connection:keep-alive

    TCP连接在发送后将仍然保持打开状态,于是,浏览器可以继续通过相同的连接发送请求。保持连接节省了为每个请求建立新连接所需的时间,还节约了网络带宽。

    在HTTP的请求服务类型主要有以下八种:

    GET:获取资源

    GET方法用来请求访问已经被URI识别的资源,具体的请求与响应的例子如下:

    请求

    GET /indexhtml HTTP/1.1

    Host:www.hackr.jp

    响应

    返回index.html的页面资源

    POST:传输实体主体,具体的请求响应例子如下:

    请求

    POST /submit.cgi HTTP/1.1

    Host:www.hackr.jp

    Content-Length:1560(1560字节的数据)

    响应

    返回submit.cgi接收数据的处理结果

    PUT:传输文件,具体的请求响应例子如下:

    请求

    PUT /example.html HTTP/1.1

    Host:www.hackr.jp

    Content-type:text/html

    Content-Length:1560(1560字节的数据)

    响应

    返回状态码

    HEAD:获得保温首部

    请求

    HEAD /indexhtml HTTP/1.1

    Host:www.hackr.jp

    响应

    返回index.html有关的响应首部

    DELETE:删除文件

    请求

    DELETE /example.html HTTP/1.1

    Host:www.hackr.jp

    响应

    返回状态码

    OPTIONS:询问支持的方法

    请求

    OPTIONS* HTTP/1.1

    Host:www.hackr.jp

    响应

    HTTP/1.1 200 OK

    Allow:GET,POST,HEAD,OPTIONS

    (返回服务器支持的方法)

    TRACE:追踪路径

    请求

    TRACE HTTP/1.1

    Host:www.hackr.jp

    Max-Forwards:2

    响应

    HTTP/1.1 200 OK

    Content-type:message/http

    Content-Length:1024

     

    TRACE HTTP/1.1

    Host:www.hackr.jp

    Max-Forwards:2

    CONNECT:要求用隧道协议链接代理

    请求

    CONNECT proxy.hackr.jp:8080 HTTP/1.1

    Host:proxy.hackr.jp

    响应

    HTTP/1.1 200 OK(之后进入网络隧道)

  • 相关阅读:
    Linux下修改HOSTNAME
    IBM服务器 IMM日志收集
    X3850 Linux 下DSA日志收集办法
    Linux查看进程内存占用及内存使用情况
    集成开发注意事项(持续更新)
    SOAPUI请求及mockservice 使用
    Linux下su与su -命令的区别
    从XML文件中获取格式化的文本信息
    前端实现下载文件
    动态表单如何对部分表单字段校验
  • 原文地址:https://www.cnblogs.com/Mr--Yang/p/6822067.html
Copyright © 2011-2022 走看看