请求、响应报文

HTTP:
   通信双方如果想要通信就必须遵循一定的规则,我们把这个规则称之为HTTP协议!

报文:
   HTTP协议通信的内容我们称之为:报文
   报文格式:
    报文首部
    空行
    报文主体

  请求报文
    请求首部:请求首行和请求头部
    空行
    请求主体
  响应报文
    响应首部
    空行
    响应主体

报文分类:
  请求报文:浏览器发送给服务器端的内容

    get请求
  GET /Hello/index.jsp HTTP/1.1 
  Accept: */*
  Accept-Language: zh-CN
  User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media   Center PC 6.0; .NET4.0C; .NET4.0E)
  Accept-Encoding: gzip,deflate
  Host: localhost:8080
  Connection: Keep-Alive
  Cookie: JSESSIONID=C55836CDA892D9124C03CF8FE8311B15

    请求首行:请求方式 请求资源【url】 请求协议/版本号
    请求头部:*/*表示客户端可以接受的文档类型,*/*表示的是可以接受任意类型
    Accept-Language:表示的是当前浏览器所在的地区,zh-CN表示是客户端用的语言简体中文,en-US表示的是美式英语!
    Accept-Encoding:浏览器向服务器发送请求的时候,会告诉服务器端浏览器可以接受的压缩格式!
    refer:表示的是当前网页是从哪个网页跳转过来!
    host:是目标主机的ip地址和端口号!
    Connection:表示的是浏览器和服务器的通信连接:Keep-Alive表示会话保持!默认会话连接时间是3000ms!
    Cookie:是位于浏览器端的,和服务器通信使用!

    get请求没有空行和请求体!

    post请求
  POST /Hello/target.html HTTP/1.1
  Accept: application/x-ms-application, image/jpeg, application/xaml+xml, image/gif, image/pjpeg,application/x-ms-xbap, */*
  Referer: http://localhost:8080/Hello/
  Accept-Language: zh-CN
  User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media   Center PC 6.0; .NET4.0C; .NET4.0E)
  Content-Type: application/x-www-form-urlencoded
  Accept-Encoding: gzip, deflate
  Host: localhost:8080
  Content-Length: 14
  Connection: Keep-Alive
  Cache-Control: no-cache
  Cookie: JSESSIONID=774DA38C1B78AE288610D77621590345

  username=admin

    请求首部
      请求首行:请求方式 请求URL 请求协议/协议版本号 POST /Hello/target.html HTTP/1.1
      请求头部
    空行
    请求体:请求的内容

  get请求和post请求的区别:
    1.get请求是通过url传递参数,post请求是通过请求体传递参数的
    2.get请求最多允许传递255个字符,对长度有限制,所以数据比较大的时候我们使用post请求,尤其是做上传的时候用post请求!
    3.get请求我们在浏览器上是可以看到请求参数的,而post请求在浏览器地址栏中是看不到请求参数的!

  响应报文:服务器发送给浏览器端的内容

  响应报文是由响应首部[响应首行和响应头部]、空行响应体
  HTTP/1.1 200 OK 
  Server: Apache-Coyote/1.1 
  Content-Type: text/html;charset=UTF-8
  Content-Length: 274
  Date: Tue, 07 Apr 2015 10:08:26 GMT


  <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" >
  <html>
  <head>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  <title>Insert title here</title>
  </head>
  <body>
  <h1>Hello</h1>
  </body>
  </html>
    
  响应首行:通信协议/版本号 响应状态码 
  响应头部:
  服务器:apache
  响应体编码类型:Content-Type
  响应体长度:Content-Length
  响应时间:Date

  空行
  响应体!

  响应状态码
  200:表示的是响应成功
  302:表示的是重定向
  404:请求的url错误!
  500:服务器端的错误!

原文地址:https://www.cnblogs.com/alternative/p/7353929.html