zoukankan      html  css  js  c++  java
  • Http请求原理与相关知识

    1、在浏览器地址栏输入URL,按回车后经过了哪些步骤

     1-1. 浏览器向DNS服务器请求解析该URL中的域名及所对应的IP地址;

     1-2. 解析出IP地址后,根据该IP地址和默认端口80与服务器建立TCP连接;

     1-3. 服务器对浏览器请求作出响应,并把对应的html文本发送给浏览器并关闭TCP连接;

     1-4. 浏览器得到html文件后进行显示内容;

    2、请求

      请求是由客户端向服务器发送请求,分为四个部分内容:请求方法(Request Method)、请求地址(Request URL)、请求头(Request Headers)、请求体(Request Body)。

      2-1.  请求方法: 常见的请求方法有两种:GET和POST。其他请求方法

          

    方法

    描述

    GET

    请求页面,并返回页面内容

    HEAD

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

    POST

    大多用于提交表单或上传文件,数据包含在请求体中

    PUT

    从客户端向服务器传送的数据取代指定文档中的内容

    DELETE

    请求服务器删除指定的页面

    CONNECT

    把服务器当作跳板,让服务器代替客户端访问其他网页

    OPTIONS

    允许客户端查看服务器的性能

    TRACE

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

         

          GET和POST请求方法有如下区别。

          • GET请求中的参数包含在URL里面,数据可以在URL中看到,而POST请求的URL不会包含这些数据,数据都是通过表单形式传输的,会包含在请求体中。
          • GET请求提交的数据最多只有1024字节,而POST方式没有限制。

         一般来说,登录时需要提交用户名和密码,其中包含了敏感信息,使用GET方式请求的话,密码就会暴露在URL里面,造成密码泄露,所以这里最好以POST方式发送。上传文件和FORM表单提交时,由于文件内容比较大,也会选用POST方式。

      2-2.  请求URL: 请求的网址,即统一资源定位符URL,它可以唯一确定我们想请求的资源。  

      2-3.  请求头: 用来说明服务器要使用的附加信息,比较重要的信息有Cookie,Referer,User-Agent等。下面简要说明一些常用的头信息。

            Accept:请求报头域,用于指定客户端可接受哪些类型的信息。

            Accept-Language:指定客户端可接受的语言类型。

            Accept-Encoding:指定客户端可接受的内容编码。

            Host:指定请求资源的主机ip和端口号,其内容为请求URL的原始服务器或网关的位置。

            Cookie:也常用复数形式 Cookies,这是网站为了辨别用户进行会话跟踪而存储在用户本地的数据,它的主要功能是维持当前访问会话。

            Referer: 用来标识这个请求是从哪个页面发过来的,服务器可以拿到这一信息并做相应的处理,如作来源统计,防盗链处理等。

            User-Agent:简称UA,它是一个特殊的字符串头,可以使服务器识别客户使用的操作系统及版本、浏览器及版本等信息。

            Content-Type:也叫互联网媒体类型(Internet Media Type)或者MIME类型,在HTTP协议消息头中,它用来表示具体请求中的媒体类型信息,例如,text/html代表HTML格式,image/gif代表GIF图片,application/json代表JSON类型,更多对应关系可以查看对照表:http://tool.oschina.net/commons

      2-4.  请求体:请求体一般承载的内容是POST请求中的表单数据,而对于GET请求,请求体则为空。 下面列出了Content-Type和POST提交数据方式的关系。

    Content-Type

    提交数据的方式

    application/x-www-form-urlencoded

    表单数据

    multipart/form-data

    表单文件上传

    application/json

    序列化JSON数据

    text/xml

    XML数据

    3、响应

      响应是由服务端返回给客户端,可以分为三个部分:响应状态码:(Response Status Code)、响应头(Response Headers)和响应体(Response Body)。

      3-1.  响应状态码: 响应状态码表示服务器的响应状态,如200代表服务器正常响应,404代表页面未找到,500代表服务器内部发生错误。更多状态码请参考:http://www.runoob.com/http/http-status-codes.html。

      3-2.  响应头:  响应头包含了服务器对请求的应答信息,如Content-Type、Server、Set-Cookie等,下面简要说明下常用的头信息。

            Data: 标识响应产生的时间。

            Last-Modified:指定资源的最后修改时间。

            Content-Encoding: 指定响应内容的编码。

            Server: 包含服务器的信息,比如名称,版本号等。

            Content-Type: 文档类型,指定返回的数据类型是什么,如text-html代表返回HTML文档,application/x-javascript则代表返回Javascript文件,image/jpeg则代表返回图片。

            Set-Cookie: 设置Cookies。响应头中的Set-Cookie告诉浏览器需要将此内容放在Cookies中,下次请求携带Cookies请求。

            Expires:指定响应的过期时间,可以使代理服务器或浏览器将加载的内容更新到缓存中,下次访问时就可以直接从缓存中加载,从而降低服务器负载,缩短加载时间。

      3-3.  响应体: 响应体就是响应的消息体,如果是纯数据就是返回纯数据,如果请求的是HTML页面,那么返回的就是HTML代码,如果是JS就是JS代码,如此之类。

  • 相关阅读:
    Go-15-flag.String 获取系统参数
    Go-14-解决 go get golang.org/x/text 拉取失败问题
    Go-08-函数与指针
    redis 学习(6)-- 集合类型
    redis 学习(5)-- 列表类型
    redis 学习(4)-- 哈希类型
    redis 学习(3)-- String 类型
    redis 学习(二)-- 通用命令
    redis 学习(1)-- redis 安装与启动
    Mysql 索引原理及优化
  • 原文地址:https://www.cnblogs.com/chessYu/p/10756773.html
Copyright © 2011-2022 走看看