• HTTP 协议


    HTTP请求

       客户端连上服务器后,向服务器请求某个web资源,称之为客户端向服务器发送了一个HTTP请求。一个完整的HTTP请求包括如下内容:

          一个请求行、若干消息头、以及实体内容,如下所示 :

    关于Get和Post请求方式:

     
    •常用的有: GET、 POST
    •用户如没有设置,默认情况下浏览器向服务器发送的都是get请求,例如在浏览器直接输地址访问,点超链接访问等都是get,用户如想把请求方式改为      post,可通过更改表单的提交方式实现。
    l不管POST或GET,都用于向服务器请求某个WEB资源,这两种方式的区别主要表现在数据传递上:
    •如请求方式为GET方式,则可以在请求的URL地址后以?的形式带上交给服务器的数据,多个数据之间以&进行分隔,例如:
    •GET /mail/1.html?name=abc&password=xyz HTTP/1.1
    •GET方式的特点:在URL地址后附带的参数是有限制的,其数据容量通常不能超过1K。
    •如请求方式为POST方式,则可以在请求的实体内容中向服务器发送数据,Post方式的特点:传送的数据量无限制。

    HTTP请求的细节——消息头

    l用于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: Tue, 11 Jul 2000 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: Tue, 11 Jul 2000 18:23:51 GMT
     
     
     
    HTTP响应
     
    l一个HTTP响应代表服务器向客户端回送的数据,它包括:

      一个状态行、若干消息头、以及实体内容 。

     
    HTTP响应细节——常用响应头
    lHTTP请求中的常用响应头
    •Location: http://www.it315.org/index.jsp  通常配合302状态码使用,服务器使用这个头告诉浏览器去找谁
    •Server:apache tomcat  服务器通过这个头告诉浏览器,服务器的类型
    •Content-Encoding: gzip 服务器通过这个头告诉浏览器,数据的压缩格式(gzip)
    •Content-Length: 80 服务器通过这个头告诉浏览器,回送数据的长度
    •Content-Language: zh-cn
    •Content-Type: text/html; charset=GB2312  服务器通过这个头告诉浏览器,回送数据的类型
    •Last-Modified: Tue, 11 Jul 2000 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 控制浏览器缓存数据的时间(-1或0,代表控制浏览器不要缓存)
    •Cache-Control: no-cache 
    •Pragma: no-cache    以上三个头一起用,就可以控制所有的浏览器不要缓存数据
    •Connection: close/Keep-Alive  
    •Date: Tue, 11 Jul 2000 18:23:51 GMT
  • 相关阅读:
    webMagic 处理get请求
    springCloud Stream
    获取印度时间
    java获取未来或者过去的时间
    List分批处理结果,并在每批中开启一个线程
    java中List集合分批处理
    Redis常用的数据类型
    ubuntu1604软件卸载
    Ubuntu清理无效包、废弃包、冗余包、rc包
    cuda各个版本官方下载地址
  • 原文地址:https://www.cnblogs.com/zhangbaowei/p/4672610.html
Copyright © 2020-2023  润新知