zoukankan      html  css  js  c++  java
  • HTTP协议

    1.概述

    超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。

    全部的WWW文件都必须遵守这个标准。

    设计HTTP最初的目的是为了提供一种公布和接收HTML页面的方法。1960年美国人Ted Nelson构思了一种通过计算机处理文本信息的方法,并称之为超文本(hypertext),

    这成为了HTTP超文本传输协议标准架构的发展根基。

    Ted Nelson组织协调万维网协会(World Wide Web Consortium)和互联网project工作小组(Internet Engineering Task Force )共同合作研究。

    终于公布了一系列的RFC。当中著名的RFC 2616定义了HTTP 1.1。

    2.HTTP1.0、HTTP1.1差别

     HTTP1.0:client与webserver建立连接后。仅仅能获得一个web资源

     HTTP1.1:在一个连接上获取多个web资源

     是用telnet能够观察到HTTP1.o连接一次后须要又一次再去连接、而1.1就不会

    3.HTTP请求

     client连上server后,向server请求某个web资源,称之为client向server发送了一个http请求。一个完整的http请求包含例如以下内容:

     一个请求行、若干请求头、以及实体内容;例如以下所看到的:

     Get http://www.kk.com:8080//project/user/data_list.jsp HTTP/1.1

     Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8

     用于告诉serverclient支持的数据类型

     Accept-Encoding:gzip,deflate,sdch

     告诉serverclient支持的数据压缩格式

     Accept-Language:zh-CN,zh;q=0.8

     client的语言环境

     Connection:close/keep-alive

     意思是这个请求完毕后。是保持连接还是关闭连接

     Cookie:JSESSIONID=2D038DE401B05C06B9C465AD52BA01E3

     Host:www.kk.com:8080

     client通过这个头告诉server、想訪问的主机名

     Referer:http://www.kk.com:8080/

     client通过这个头告诉server。它是从哪个资源来訪问server的(防盗链)

     User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.114 Safari/537.36

     client通过这个头告诉server。client软件环境

    4.HTTP响应

     一个HTTP响应代表server向client回送的数据,它包含:

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

     响应 HTTP/1.1 200 OK
     Server Apache-Coyote/1.1
     Content-Type text/html;charset=UTF-8
     Content-Length 1342
     Date Sun, 07 Jun 2015 07:11:44 GMT

     状态行:

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

              举例:HTTP/1.1 200 OK

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

     

    状态码 含义
    100~199 表示成功接收请求,要求client继续提交下一次请求才干完毕整个处理结果
    200~299 表示成功接收请求并已完毕整个处理过程 经常使用200
    300~399 为完毕请求,客户需进一步细化请求,比如:请求的资源已经移动到一个新地址。经常使用302、307和304
    302、3067:资源存在却没有权限訪问
    304:资源转发给别人
    400~499 client的请求错误,经常使用404 403
    500~599 server端出现错误,经常使用500

     HTTP请求中的经常使用响应头:

     Location:http://www.kk.com/index.jsp 配合302状态码使用。用于快速客户找谁

     server:apache tomcat 告诉浏览器服务器类型

     Content-Encoding: gzip  告诉client数据的压缩格式

     Content-Length:90 告诉浏览器回送数据的长度

     Content-Language:zh-cn  告诉浏览器语言

     Content-Type:text/html; charset=UTF-8 告诉浏览器回送数据的类型 

     Last-Modified:Tue,11 Jul 2000 18:00:00 GMT 告诉浏览器当前缓存时间

     Refresh:1;url=htttp://www.google.com.hk 告诉浏览器隔多长时间刷新一次

     Content-Dispostion:attachment;filename=test.zip 告诉浏览器下面载的方式打开数据

     Transfer-Encoding:chunked 告诉浏览器数据的传递格式

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

     ETag:W/"7777-123423238" 缓存消息的头

     Expires:-1 告诉浏览器把回送的资源缓存多长时间,-1或0表示不缓存

     Cache-Control:no-cache 

     Pragma:no-cache

     通过以上两个头,控制浏览器不缓存数据

     Connection:close/Keep-Alive

     Date:Tue,11 Jul 2000 18:00:00 GMT





  • 相关阅读:
    装饰器模式
    原型模式
    观察者模式
    Apollo 代码的编译演示
    Apollo 框架的剖析1
    gPRC学习笔记
    Docker入门
    ROS入门学习
    Mudo C++网络库第十一章学习笔记
    Mudo C++网络库第十章学习笔记
  • 原文地址:https://www.cnblogs.com/yxwkf/p/5113219.html
Copyright © 2011-2022 走看看