zoukankan      html  css  js  c++  java
  • Http 1.1协议

    HTTP是hypertext transfer protocol(超文本传输协议)的简写,它是TCP/IP协议的一个应用层协议,用于定义WEB浏览器与WEB服务器之间数据交换的过程。

    1.Http1.0和1.1

    Http1.0:请求一次,连接自动断开。

    Http1.1:一次连接,可以发起多次请求。

    2.在windows中使用telnet发起Http请求

    telnet localhost 8080   //连上服务器

    GET /abc/1.html HTTP/1.1 // 编写HTTP请求

    Host: // 输入服务器名

    3.HTTP请求的格式

    【一个请求行】换行

    【若干个请求头】换行

     换行

    【post消息】

    例如:

    GET /books/abc.html HTTP/1.1    

    Accept:image/webp,image/*,*/*;q=0.8
    Accept-Encoding:gzip, deflate, sdch
    Accept-Language:zh-CN,zh;q=0.8
    Cache-Control:max-age=0
    Connection:keep-alive
    Cookie:uuid_tt_dd=1603386812225897869_20161020; __message_sys_msg_id=0; __message_gu_msg_id=0; __message_cnel_msg_id=0; __message_district_code=000000; __message_in_school=0; dc_tos=ofbqa0; dc_session_id=1476929736226
    Host:dc.csdn.net
    Referer:http://www.csdn.net/article/2014-09-17/2821721
    User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36

    // 说明

     //第一行是请求行 格式为:【请求方式  资源URL  HTTP版本号】

    // 请求方式共有7种,常用的是GET和POST两种,GET常用来从服务器得到信息,POST主要用来向服务器提交信息

    // GET请求提交给服务器的信息被写在URL的“?“后面,使用“&”分隔多个键值对,不具有保密性,通常该信息容量最大不超过1K

    // POST请求发给服务器端的信息无容量限制,该信息被放在请求体里发给服务器。POST请求通常通过form表单提交。

    //第二行开始是多条请求头信息

    2.常用请求头

    Accept:客户支持的数据类型,全支持是"*/*",部分支持比如"text/html image"表示支持HTML和图片

    Accept-Charset:客户机采用的编码方式

    Accept-Language:客户机语言环境,用来提示服务器进行正确的国际化,如"zh-cn"表示中文中国地区

    Accept-Encoding:客户端支持的压缩格式,服务器端可根据该信息,将响应内容压缩至该格式进行传输

    Host:请求哪个主机的资源

    If-Modified-Since:如果服务器端相应资源的最后修改日期比这个日期新,就发送新的相应,否则就读取客户机浏览器缓存

    Referer:表明当前的请求是从哪个页面发送出来的,用来支持服务器端做防盗链工作。

    User-Agent:客户机的软件环境,如浏览器品牌及版本,操作系统品牌及版本等

    Cookie:Cookie信息

    Connection:用来告诉服务器端,当响应完成以后连接是关闭还是保持。常用的值两个:close/Keep-Alive

    Date:客户机的时间

    5.响应的格式

    【一行状态行】换行

    【若干个响应头】换行

     换行

    【实体内容】

    举例:

    HTTP/1.1 200 OK 

    Access-Control-Allow-Credentials:true
    Access-Control-Allow-Methods:GET,POST
    Access-Control-Allow-Origin:http://so.csdn.net
    Connection:keep-alive
    Content-Encoding:gzip
    Content-Type:text/plain;charset=UTF-8
    Date:Thu, 20 Oct 2016 02:15:38 GMT
    Expires:Thu, 01-Jan-1970 00:00:00 GMT
    Keep-Alive:timeout=20
    Server:openresty
    Set-Cookie:dc_session_id=1476929736226;Path=/;Domain=csdn.net;Expires=Thu, 20-Oct-2016 02:45:38 GMT
    Transfer-Encoding:chunked
    Vary:Accept-Encoding

    //说明

    // 第一行是状态行  格式为【HTTP版本号 状态码 原因叙述】

    // 状态码用于表示服务器对请求的处理结果,它是一个三位的十进制数,响应状态码分为5类

    // 100~199:表示成功接收请求,要求客户端继续提交下一次请求才能完成整个处理过程。不常见。

    // 200~299:表示成功接收请求并已完成整个处理过程,常用200

    // 300~399:为完成请求,客户机需要继续细化请求。例如:请求的资源已经移动到一个新地址。常用302、304和307

                        // 302:请求被服务器重定向到新的URL,与响应头中的Location头配合使用

                        // 307和304:服务器要求客户机去拿缓存

    // 400~499:客户端的请求有错误。常用404、403。404表示请求的资源不存在。403表示用户没有访问该资源的权限。

    // 500~599:服务器端有错误产生,常用500。

    6.常用响应头

    Location:客户发来的请求,服务器端告诉客户端,你要的东西我没有,你可以去找某某,这个过程术语叫做请求重定向,而Location就是这个某某。

    Server:服务器的类型

    Content-Encoding:数据压缩格式

    Content-Length:数据长度

    Content-type:数据类型

    Last-Modified:资源缓存时间

    Refresh:连命令浏览器多长时间刷新一次

    Content-Disposition:是否以下载的方式打开资源

    Transfer-Encoding:数据传送格式

    ETag:缓存内容的头

    Expires:缓存过期时间

    Cache-Control:no-cache是否要缓存

    Pragma:no-cache是否需要缓存

  • 相关阅读:
    Asp.net分页控件AspNetPager的使用(DataList和Reapter结合Linq的编辑与删除)
    Zend Framework使用Extjs进行数据库交互和分页
    课程设计之(struts2+Hibernate)航空订票系统
    课程设计之(ZendFrameWrok)构建的航空订票系统网站
    Ubuntu10.10 Zend FrameWork配置及helloworld显示
    ExtJs、Struts2、Hibernate3.2登录页面的简单实现
    Asp.net的FileUpload控件的文件上传与Extjs文件上传的简单Demo
    学习linux的一些网络资源
    100条超搞笑的“雷人”QQ/MSN 签名
    超难的75道逻辑思维题
  • 原文地址:https://www.cnblogs.com/mabaishui/p/5981376.html
Copyright © 2011-2022 走看看