美文网首页
HTTP报文结构

HTTP报文结构

作者: 一个半吊子工程师 | 来源:发表于2020-10-12 10:45 被阅读0次

(一)、请求报文

一个HTTP请求报文由请求行(request line)、请求头部(header)、空行和请求数据4个部分组成;
1、请求行
由请求方法字段、URL字段和HTTP协议字段3个字段组成,它们由空格分隔;
例如,GET /index.html HTTP/1.1。
HTTP协议的请求方法有GET、POST、HEAD、PUT、DELETE、OPTIONS、TRACE、CONNECT。
2、请求头部
请求头部由关键字/值对组成,每行一对,关键字和值用英文冒号“:”分隔。
请求头部通知服务器有关于客户端请求的信息;
常用的请求头:

  • Accept 设置接受的内容类型Accept: text/plain;
  • Accept-Charset 设置接受的字符编码:Accept-Charset: utf-8;
  • Accept-Encoding 设置接受的编码格式:Accept-Encoding: gzip, deflate;
  • Accept-Language 设置接受的语言:Accept-Language: en-US;
  • Cache-Control 设置请求响应链上所有的缓存机制必须遵守的指令:Cache-- Control: no-cache;
  • Connection 设置当前连接和hop-by-hop协议请求字段列表的控制选项:Connection: keep-alive;
  • Content-Length 设置请求体的字节长度:Content-Length: 348;
  • Content-Type 设置请求体的MIME类型(适用POST和PUT请求):Content-Type: application/x-www-form-urlencoded;
  • Cookie 设置服务器使用Set-Cookie发送的http cookie:Cookie: $Version=1; Skin=new;
  • Host 设置服务器域名和TCP端口号,如果使用的是服务请求标准端口号,端口号可以省略:Host: en.wikipedia.org:8080;
  • Origin 标识跨域资源请求(请求服务端设置Access-Control-Allow-Origin响应字段):Origin: http://www.example-social-network.com;
  • Expires 设置响应体的过期时间:Expires: Thu, 01 Dec 1994 16:00:00 GMT;
  • ETag 特定版本资源的标识符,通常是消息摘要:ETag:"737060cd8c284d8af7ad3082f209582d";
  • Last-Modified 设置请求对象最后一次的修改日期:Last-Modified: Tue, 15 Nov 1994 12:45:26 GMT;

3、空行
最后一个请求头之后是一个空行,发送回车符和换行符,通知服务器以下不再有请求头。
4、请求主体(数据)
请求数据不在GET方法中使用,而是在POST方法中使用。POST方法适用于需要客户填写表单的场合。与请求数据相关的最常使用的请求头是Content-Type和Content-Length。

(二)、响应报文

HTTP响应也由四个部分组成,分别是:状态行、消息报头、空行、响应正文。
1、在响应中唯一真正的区别在于第一行中用状态信息代替了请求信息。状态行(status line)通过提供一个状态码来说明所请求的资源情况。
2、状态行

  • 格式:服务器HTTP协议的版本 响应状态代码 状态代码的文本描述;
  • 状态代码由三位数字组成,第一个数字定义了响应的类别,且有五种可能取值:

1xx:指示信息--表示请求已接收,继续处理。
2xx:成功--表示请求已被成功接收、理解、接受。
3xx:重定向--要完成请求必须进行更进一步的操作。
4xx:客户端错误--请求有语法错误或请求无法实现。
5xx:服务器端错误--服务器未能实现合法的请求。

3、常见状态代码:

200 OK :表示请求成功 一切正常
301 Moved Permanently:重定向,客户请求的文档在其他地方,新的URL在Location头中给出,浏览器应该自动地访问新的URL
302 Found:临时重定向,类似于301,但新的URL应该被视为临时性的替代,而不是永久性的。
304 Not Modified:客户端有缓冲的文档并发出了一个条件性的请求。服务器告诉客户,原来缓冲的文档还可以继续使用。
400 Bad Request:请求出现语法错误。
403 Forbidden:资源不可用。
404 Not Found:无法找到指定位置的资源。
405 Method Not Allowed:请求方法(GET、POST、HEAD、Delete、PUT、TRACE等)对指定的资源不适用。
500 Internal Server Error:服务器遇到了意料不到的情况,不能完成客户的请求。
501 Not Implemented:服务器不支持实现请求所需要的功能

相关文章

  • HTTP首部字段详解

    《图解HTTP》笔记(一) HTTP报文结构 请求报文:报文首部(方法,URI,HTTP版本,HTTP首部字段),...

  • HTTP之报文结构

    HTTP报文结构 HTTP请求报文 HTTP请求报文由方法、URI、HTTP版本、HTTP首部字段等部分构成 比如...

  • http图解

    1.http报文结构 2.http报文首部

  • HTTP报文结构

    HTTP request报文结构是怎样的 首行是Request-Line包括:请求方法,请求URI,协议版本,CR...

  • HTTP 报文结构

    HTTP 报文有 请求报文 和 响应报文 两种。请求报文:从客户向服务器发送请求报文。响应报文:从服务端到客户的回...

  • HTTP报文结构

    HTTP超文本传输协议 HTTP超文本传输协议 获取分布在万维网中的超文本文档,默认TCP端口80 URL统一资...

  • HTTP报文结构

    (一)、请求报文 一个HTTP请求报文由请求行(request line)、请求头部(header)、空行和请求数...

  • HTTP报文结构

    苦逼的找工作时期 HTTP报文:它是HTTP应用程序之间发送的数据块。这些数据块以一些文本形式的元信息开头,这些信...

  • HTTP报文结构

    1 HTTP请求报文 User-Agent:发送请求的浏览器类型 Accept :客户端可识别的响应内容类型列表 ...

  • HTTP报文

    HTTP报文 -- 用于HTTP协议交互的信息 报文结构:报文首部和报文主体 报文首部:状态/请求行:请求行:用于...

网友评论

      本文标题:HTTP报文结构

      本文链接:https://www.haomeiwen.com/subject/eijupktx.html