zoukankan      html  css  js  c++  java
  • http

    http协议

    1.  tcp/ip 协议: 网络通信协议(连接)

    ip 协议 : 127.0.0.1 ip地址对应一台计算机  (互联网层)

    tcp 高级协议: 三次握手, 发送请求、返回响应、传输数据 (传输层)

    2. http 协议是建立在 tcp协议的基础之上 (应用层)

    3. Http协议的版本 (w3c)

    Http1.0 : 建立连接,发送一次请求就断开

    Http1.1  :建立连接,可以无限次发送请求

     

     

     http请求消息

    内容包括一个请求行、若干消息头、以及实体内容,其中的一些消息头和实体内容都是可选的,消息头和实体内容之间要用空行隔开。

     

    请求行

    POST /itcast/ HTTP/1.1

    消息头

    Accept: image/gif, image/x-xbitmap, */*

    Referer: http://localhost:8080/itcast/

    Accept-Language: zh-CN,en-GB;q=0.8,ar-YE;q=0.7,ja-JP;q=0.5,de-CH;q=0.3,en-US;q=0.2

    Content-Type: application/x-www-form-urlencoded

    UA-CPU: x86

    Accept-Encoding: gzip, deflate

    User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; GTB6.5; CIBA)

    Host: localhost:8080

    Content-Length: 33

    Connection: Keep-Alive

    Cache-Control: no-cache

    Cookie: JSESSIONID=B0B3FB4FFB0315B3D3C620548DD4E1EB

    空一行

    消息体

    username=zhangsan&password=123456

     

     

    1. 请求行 GET /itcast/a.html HTTP/1.1

    GET 为请求方式 : get方式请求参数跟在url后面/itcast/a.html?username=aaa&password=111

    Post方式: 请求参数放在消息体中传输,相对安全,get大小限制1Kpost 无数据量限制

     

    2. 请求消息头 : IE浏览器用于向服务器说明情况的(浏览器使用环境)

    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 向服务器发送Cookie

    Connection: close/Keep-Alive    说明连接状态

    Date: Tue, 11 Jul 2000 18:23:51 GMT    客户端计算机时间

     

    3. 实体内容(消息体)

    浏览器向服务器发送的数据,例如上传的文件、提交的表单等

     

    http响应消息

    内容包括一个状态行、若干消息头、以及实体内容 ,其中的一些消息头和实体内容都是可选的,消息头和实体内容之间要用空行隔开。 

     

    HTTP/1.1 200 OK

    Server: Apache-Coyote/1.1

    Content-Type: text/html;charset=GB18030

    Content-Length: 766

    Date: Thu, 07 Jul 2011 15:40:02 GMT

     

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

    <html>

      <head>

        <title>My JSP 'index.jsp' starting page</title>

      </head>

      <body>

      hello

      </body>

    </html>

     

     

    1. 状态行 HTTP/1.1 404 Not Found

    协议版本: 目前普遍采用的都是http1.1

    响应状态码: 说明服务器的响应状态

    常用状态码

    状态码

    含义

    100~199

    表示成功接收请求,要求客户端继续提交下一次请求才能完成整个处理过程

    200~299 

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

    300~399

    为完成请求,客户需进一步细化请求。例如,请求的资源已经移动一个新地址,常用302、307和304

    400~499

    客户端的请求有错误,常用404

    500~599

    服务器端出现错误,常用 500

     

     200(ok) 302307 请求重定向,你访问我,我通知你访问另一个资源  

    304 通知浏览器去读缓存  404 找不到资源  500 服务器程序出错(服务器端的程序抛异常了)

     

    2. 响应消息头    服务器向浏览器说明情况(处理结果)

    Location: http://www.it315.org/index.jsp    通知浏览器去访问另一个资源

    Server:apache tomcat 说明服务器

    Content-Encoding: 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 通知浏览器以下载的方式打开资源

    Set-Cookie:SS=Q0=5Lb_nQ; path=/search 发cookie

    Expires: -1//3种禁止缓存的头字段

    Cache-Control: no-cache  

    Pragma: no-cache   

    Connection: close/Keep-Alive    连接状态

    Date: Tue, 11 Jul 2000 18:23:51 GMT   系统时间

     

    3. 实体内容(响应消息体)

    一般为服务器发送给ie浏览器的页面数据

  • 相关阅读:
    PHP开发经常遇到的几个错误
    PHP的Trait
    PHP反射API
    php split 和 explode 的区别
    php判断检测一个数组里有没有重复的值
    PHP serialize 和 JSON 解析与区别
    php 单文件上传
    php 数组 类对象 值传递 引用传递 区别
    六. 网络编程(解决黏包TCP)
    五. 网络编程(UDP 不黏包)
  • 原文地址:https://www.cnblogs.com/qq809306794/p/3183221.html
Copyright © 2011-2022 走看看