Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
616 views
in Technique[技术] by (71.8m points)

apache - Http Request Life Cycle

I have recently started my job as web application backend developer. I am bit stuck in understanding lifecycle of a Http request.

What I understood is

  • Every Http request first contacts a DNS server which resolves the request URL domain to a IP address.
  • After fetching the Webserver IP address request is forwarded to it(via PUT request). A webserver like apache handles this request and forwards this to application which has to handle this.

After this I am lost with

  • How response is sent by the application to the user who requested it and will Apcache involved in this?
  • Can I see the entire flow in my browser with some debugging tools?
  • Can someone refer some links to understand this in depth?
See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

I think you are a bit wrong on your understanding of it.

If you go to www.google.com (not using any forms, just wanting the site), this is what happens:

  1. First the browser needs to translate www.google.com to an IP address if it does not already know it. If it knows it, nothing happens at this point. If it does not know it, it contacts a DNS server to resolve the name.
  2. Then browser will open a TCP connection to the IP address of www.google.com and send a HTTP GET request over. In this example it will be
    GET / HTTP/1.1 Host: www.google.com
  3. The server software will get this HTTP request. It will somehow generate a HTTP response and send that back trough the TCP connection. How the server does this is server software dependent. You can for example plug in application code in Apache, or just make Apache return a file from the filesystem. PHP is an application called by some software, which then generates the response sent to the browser. When the response is sent, in HTTP version 1.0 the connection is closed. HTTP 1.1 can have persistent connections though.
  4. When the browser gets the response, it typically renders it on screen. The HTTP request is now done. A click on "search" will send a new request to the server.

GET, PUT, POST, DELETE and others are HTTP request methods. They have special meaning which you can see in the RFC.

Cookies are commonly used to identify the same user across multiple HTTP requests, called sessions. Therefore these cookies are called session cookies

You can debug the communication by using a network sniffer tool, for example Wireshark. Firefox has a third party plugin called Tamper Data that can change the request before they are sent to the server.

The HTTP RFC is a good source of how it all works.

Hope it helps.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...